假设我有一个像这样的对象数组:
var nodes = [{"size":8,"name":"myName"},{"size":10,"name":"otherName"},{"size":11,"name":"userName"}];
如何创建包含从arr
映射的对象的数组nodes
,但属性具有不同的名称。假设我希望arr.r
映射到每个size
属性,所以:
thisSize = arr[0].r
应该{{1}}向8
提供帮助。
希望我能清楚地解释我的问题。
答案 0 :(得分:4)
如果您不担心支持Internet Explorer 8及更早版本,则可以使用属性或map
,但我会假设您是。只需使用新对象迭代并构造一个新数组:
var arr = [];
for(var i = 0; i < nodes.length; i++) {
var node = nodes[i];
arr.push({
r: node.size
});
}
根据需要在对象push
中映射您的属性。
答案 1 :(得分:-1)
<script>
function item(name,size){
this.name = name;
this.size = size;
}
var arr = [];
arr[0] = new item("item 1",9);
arr[1] = new item("item 2",14);
alert("name: " + arr[0].name + " size:" + arr[0].size);
alert("name: " + arr[1].name + " size:" + arr[1].size);
</script>