假设我有一个对象数组,如下所示:
var nodes = [{"size":8,"name":"myName"},{"size":10,"name":"otherName"},{"size":11,"name":"userName"}];如何创建包含从nodes映射的对象但属性具有不同名称的数组arr。假设我希望将arr.r映射到每个size属性,因此:
thisSize = arr[0].r应该将8发送到thisSize。希望我把我的问题解释清楚了。
发布于 2012-07-23 08:03:30
如果您不担心是否支持Internet Explorer8和更早的版本,那么可以使用属性或map,但我假设您是这样做的。只需使用新对象迭代并构造一个新数组:
var arr = [];
for(var i = 0; i < nodes.length; i++) {
var node = nodes[i];
arr.push({
r: node.size
});
}根据需要在object pushed中映射您的属性。
发布于 2012-07-23 08:07:19
<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>https://stackoverflow.com/questions/11604993
复制相似问题