Javascript对象表示法

时间:2014-11-13 12:01:03

标签: javascript

我做了一些操作并将值存储在数组中,例如里程和英里数。现在我需要将它显示为具有自己特定属性的对象。 现在我有了

obj ={ 
    "miles" : [500,200], 
    "type": ["fer","bug"] 
};

我需要以

格式返回对象
obj = { 
    "fer" : 500 , 
    "bug" : 200 
};

感谢。 任何想法都表示赞赏!

4 个答案:

答案 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)

使用lo-dash's zipObject

  

创建一个由键和值数组组成的对象。提供单个二维数组,即[[key1,value1],[key2,value2]]或两个数组,一个键和一个相应的值。

.type属性是映射到.miles属性中的值的键数组。

代码是一行:

var convertedObj = _.zipObject(obj.type, obj.miles);