我做了一些操作并将值存储在数组中,例如里程和英里数。现在我需要将它显示为具有自己特定属性的对象。 现在我有了
obj ={
"miles" : [500,200],
"type": ["fer","bug"]
};
我需要以
格式返回对象obj = {
"fer" : 500 ,
"bug" : 200
};
感谢。 任何想法都表示赞赏!
答案 0 :(得分:3)
迭代并创建一个新对象
var obj = { "miles" : [500,200], "type": ["fer","bug"] };
var obj2 = {};
for (var i=0; i<obj.type.length; i++) {
obj2[obj.type[i]] = obj.miles[i];
}
// for snippet output
document.body.innerHTML = '<pre>' + JSON.stringify(obj2, null, 4) + '</pre>';
答案 1 :(得分:1)
var out = {};
for (var i = 0; i < obj.type.length; i++) {
out[obj.type[i]] = obj.miles[i] || 0; // Just to be safe :)
}
答案 2 :(得分:0)
假设类型和里程都有相同的长度,你可以这样做。
obj ={ "miles" : [500,200], "type": ["fer","bug"] };
var length = obj.type.length;
var finalObj = {};
for(var i = 0; i < length; i++) {
finalObj[obj.type[i]] = obj.miles[i]
}
finalObj
将更新输出。
答案 3 :(得分:0)
创建一个由键和值数组组成的对象。提供单个二维数组,即[[key1,value1],[key2,value2]]或两个数组,一个键和一个相应的值。
.type
属性是映射到.miles
属性中的值的键数组。
代码是一行:
var convertedObj = _.zipObject(obj.type, obj.miles);