2

假设我有一个这样的对象数组:

 var nodes = [{"size":8,"name":"myName"},{"size":10,"name":"otherName"},{"size":11,"name":"userName"}];

如何创建一个数组,该数组arr包含从中映射的对象,nodes但属性具有不同的名称。假设我希望将arr.r其映射到每个size属性,所以:

thisSize = arr[0].r

应该8考虑到thisSize。希望我清楚地解释了我的问题。

4

2 回答 2

4

您可以使用属性,或者map如果您不担心支持 Internet Explorer 8 及更早版本,但我假设您是。只需迭代并使用新对象构造一个新数组:

var arr = [];

for(var i = 0; i < nodes.length; i++) {
    var node = nodes[i];

    arr.push({
        r: node.size
    });
}

push根据需要在对象 ed 中映射您的属性。

于 2012-07-23T00:03:30.020 回答
-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>
于 2012-07-23T00:07:18.580 回答