Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何修改数组?_Javascript_Node.js_Underscore.js - Fatal编程技术网

Javascript 如何修改数组?

Javascript 如何修改数组?,javascript,node.js,underscore.js,Javascript,Node.js,Underscore.js,我目前有一个对象数组,其中每个对象都有几个属性。例如: [ { text: 'test1', id: 1 }, { text: 'test2', id: 2 } ] 将其转换为包含text中值的字符串数组的最佳方法是什么?我原以为我可以通过以下方式实现: 但我认为,由于对象在一个数组中,这将不起作用。我的下一个想法是循环数组中的每个元素,并将text值推送到一个新数组中,但我很好奇是否有人知道一种更优雅的方法来实现这一点?建议?使用.map(head

我目前有一个对象数组,其中每个对象都有几个属性。例如:

[
   { text: 'test1',
     id: 1
   },
   { text: 'test2',
     id: 2
   }
]
将其转换为包含
text
中值的字符串数组的最佳方法是什么?我原以为我可以通过以下方式实现:

但我认为,由于对象在一个数组中,这将不起作用。我的下一个想法是循环数组中的每个元素,并将
text
值推送到一个新数组中,但我很好奇是否有人知道一种更优雅的方法来实现这一点?建议?

使用
.map(headerRow,函数(行){return row.text;})
Array.map
在IE<9中不可用。

使用
\u.map(headerRow,函数(行){return row.text;})
<代码>数组.map在IE<9中不可用。

您要查找的:

|

您甚至不需要下划线,
Array#map
是ES5的一部分,由节点使用的JavaScript引擎V8完全支持
Array#map
为数组中的每个条目调用一次给定的函数,并根据该函数的返回值构建一个新数组

或者,如果要更改现有阵列,可以使用:

|

您正在寻找:

|

您甚至不需要下划线,
Array#map
是ES5的一部分,由节点使用的JavaScript引擎V8完全支持
Array#map
为数组中的每个条目调用一次给定的函数,并根据该函数的返回值构建一个新数组

或者,如果要更改现有阵列,可以使用:


|

这是一个普通的javascript版本,它避免使用不受普遍支持的
Array.map
方法

// assign the array to a variable
var a = [
   { text: 'test1',
     id: 1
   },
   { text: 'test2',
     id: 2
   }
];

// loop through each item in the array, reassigning with it's text value
// not like this: for(i in a) a[i] = a[i].text
// but with a for loop based on the array length
var i;
for(i=a.length; i; i--){ a[i-1] = a[i-1].text; }

// check the results
console.log(a);
// ["test1", "test2"]

这是一个普通的javascript版本,它避免使用不受普遍支持的
Array.map
方法

// assign the array to a variable
var a = [
   { text: 'test1',
     id: 1
   },
   { text: 'test2',
     id: 2
   }
];

// loop through each item in the array, reassigning with it's text value
// not like this: for(i in a) a[i] = a[i].text
// but with a for loop based on the array length
var i;
for(i=a.length; i; i--){ a[i-1] = a[i-1].text; }

// check the results
console.log(a);
// ["test1", "test2"]

我会用一个foreach循环通过它

 var jamie = [
    { text: 'test1',
      id: 1
    },
    { text: 'test2',
      id: 2
    }
 ];

 var length = jamie.length,
     element = [];
 for (var i = 0; i < length; i++) {
   element[i] = jamie[i].id;
   // Do something with element i.
 }
   console.info(element);
var jamie=[
{text:'test1',
身份证号码:1
},
{text:'test2',
身份证号码:2
}
];
变量长度=jamie.length,
元素=[];
对于(变量i=0;i
我会使用foreach,然后循环遍历它

 var jamie = [
    { text: 'test1',
      id: 1
    },
    { text: 'test2',
      id: 2
    }
 ];

 var length = jamie.length,
     element = [];
 for (var i = 0; i < length; i++) {
   element[i] = jamie[i].id;
   // Do something with element i.
 }
   console.info(element);
var jamie=[
{text:'test1',
身份证号码:1
},
{text:'test2',
身份证号码:2
}
];
变量长度=jamie.length,
元素=[];
对于(变量i=0;i
“Array.map在IE<9中不可用。”那么呢?OP说他们正在使用Node。Node使用V8,它有
Array#map
。这是Node.js(服务器端javascript),所以IE 9不会成为问题。“Array.map在IE<9中不可用。”那么?OP说他们正在使用Node。Node使用V8,它有
数组#映射
。这是Node.js(服务器端javascript),所以IE 9不会成为问题(i=0;iNote:comment似乎已链接到
,因为在
中我可能会找到不需要的原型stuff@BillyMoon:我看到了两个可能的原因:1.你从不声明
I
,因此成为隐式全局变量的恐怖对象;2.你滥用
for
循环(在测试中修改索引器是一种反模式——下行投票者可能认为循环体看到了错误的
i
值,这是最好不要滥用
for
循环的原因之一).还有一个事实是,你依赖的是自动插入分号的恐怖手段,但任何对此投反对票的人都需要和他谈谈。:-)@T.J.Crowder感谢您的深思熟虑。我这样编码只是为了在这里演示,在我自己的代码中,我将添加分号等。但我觉得在其中输入与问题无关的内容(全局声明/分号等)更有用。最近有人从堆栈溢出中复制/粘贴我的代码,这导致在搜索
堆栈溢出时,堆栈溢出站点在google中排名第二,所以也许我应该从现在开始编写更原始的代码。
(i=0;iNote:comment似乎已链接到
,因为在
中我可能会找到不需要的原型stuff@BillyMoon:我看到了两个可能的原因:1.你从不声明
I
,因此成为隐式全局变量的恐怖对象;2.你滥用
for
循环(在测试中修改索引器是一种反模式——下行投票者可能认为循环体看到了错误的
i
值,这是最好不要滥用
for
循环的原因之一).还有一个事实是,你依赖的是自动插入分号的恐怖手段,但任何对此投反对票的人都需要和他谈谈。:-)@T.J.Crowder感谢您的深思熟虑。我这样编码只是为了在这里演示,在我自己的代码中,我将添加分号等。但我觉得在其中输入与问题无关的内容(全局声明/分号等)更有用.最近有人从stack overflow复制/粘贴我的代码,这导致stack overflow网站在google搜索
stack overflow
时排名第二,所以也许我应该从现在开始编写更原始的代码。
 var jamie = [
    { text: 'test1',
      id: 1
    },
    { text: 'test2',
      id: 2
    }
 ];

 var length = jamie.length,
     element = [];
 for (var i = 0; i < length; i++) {
   element[i] = jamie[i].id;
   // Do something with element i.
 }
   console.info(element);