This question already has answers here:
How do I convert array of Objects into one Object in JavaScript?
(14个回答)
在10个月前关闭。
我有2个输入文字和一个按钮。用户可以单击添加按钮,这将创建一个同时包含两个输入文本的新行:
演示:https://jsfiddle.net/ndk29mvp/3/
您可以再次单击添加,它将添加更多键值文本框。
因此,基本上,我正在使用上面的输入创建下拉菜单文本和值。
下面是我的控制器代码:
在我的保存功能中,我想将用户选择的文本和值转换为键,值对。
因此,如果您在上面运行我的演示并查看控制台输出,则输出将显示为:
我想删除所有这些optionText,optionvalue等,只创建键值对,以便创建一个json对象,如下所示:
所以我尝试了以下代码:
但是$ scope.data具有以下输出:
如何正确创建键,值格式数组。
抱歉,这有点琐碎,但是不知何故我无法解决。
而且我不确定该给什么适当的标题。
(14个回答)
在10个月前关闭。
我有2个输入文字和一个按钮。用户可以单击添加按钮,这将创建一个同时包含两个输入文本的新行:
演示:https://jsfiddle.net/ndk29mvp/3/
您可以再次单击添加,它将添加更多键值文本框。
<tr ng-repeat="m in options">
<td>
<input type="text" name="optionKey_{{$index}}" class="form-control"
ng-model="m.optionText" />
</td>
<td>
<input type="text" name="optionValue_{{$index}}" class="form-control"
ng-model="m.optionValue" />
</td>
</tr>
<button type="button" class="btn btn-primary btn-sm" ng-click="Add()">
<i class="fa fa-plus"></i> Add</button>
因此,基本上,我正在使用上面的输入创建下拉菜单文本和值。
下面是我的控制器代码:
$scope.options = [];
$scope.Add = function () {
var option = {};
option.optionText = $scope.optionText;
option.optionValue = $scope.optionValue;
$scope.options.push(option);
};
在我的保存功能中,我想将用户选择的文本和值转换为键,值对。
因此,如果您在上面运行我的演示并查看控制台输出,则输出将显示为:
(2) [{…}, {…}, {…}]
0: {optionText: "1", optionValue: "11", $$hashKey: "005"}
1: {optionText: "2", optionValue: "22", $$hashKey: "007"}
我想删除所有这些optionText,optionvalue等,只创建键值对,以便创建一个json对象,如下所示:
{
"1": "11",
"2": "22"
}
所以我尝试了以下代码:
$scope.data = [];
_.each($scope.options, function (value) {
$scope.data[value.optionText] = value.optionValue;
});
但是$ scope.data具有以下输出:
1: "11"
2: "22"
如何正确创建键,值格式数组。
抱歉,这有点琐碎,但是不知何故我无法解决。
而且我不确定该给什么适当的标题。
最佳答案
var optionsArr = [
{optionText: "1", optionValue: "11", $$hashKey: "005"},
{optionText: "2", optionValue: "22", $$hashKey: "007"}
];
var obj = optionsArr.reduce( (acc,i) => {
acc[i.optionText]=i.optionValue;
return acc;
}, {} );
console.log(JSON.stringify(obj));
关于javascript - Angular.js:将JSON对象转换为键,值对,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57237556/
10-10 09:51