Javascript 用于从JSON传递数据的数组映射方法

Javascript 用于从JSON传递数据的数组映射方法,javascript,Javascript,因此,我有一个函数,旨在将“id”从JSON('myObj')映射到一个数组: function get_data () { let myObj = (JSON.parse(this.responseText)); let id_array = myObj.map(item = () => {return item.id}); console.log(id_array); } console.log(myObj)提供了预期的结果: (10) [{…}, {…}, {…}, {…}, {…

因此,我有一个函数,旨在将“id”从JSON('myObj')映射到一个数组:

function get_data () {
let myObj = (JSON.parse(this.responseText));
let id_array = myObj.map(item = () => {return item.id});
console.log(id_array);
}
console.log(myObj)提供了预期的结果:

(10) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
0: {id: "774944", general: {…}, brand: {…}, images: {…}}
1: {id: "774945", general: {…}, brand: {…}, images: {…}}
...
9: {id: "738471", general: {…}, brand: {…}, images: {…}}
length: 10
__proto__: Array(0)
看起来get_data()函数正在工作,但并不像预期的那样。这是我的id_数组:

(10) [undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined]
0: undefined
1: undefined
...
9: undefined
length: 10
__proto__: Array(0)

所以,正如我所看到的,映射函数的工作原理是:没有正确读取值。我遗漏了什么?

好的,麻烦的线路是

let id_array = myObj.map(item = () => {return item.id});
其内容为“将一个箭头函数分配给item变量,然后将其插入到map函数以生成一个新数组。当然,这没有任何意义,因为箭头函数中的项是未定义的。下面是您想要的

let id_array = myObj.map(item => {return item.id});
另外,为什么不调用myObj,myArray,以避免混淆。因为它实际上是一个数组。最好使用缩写

let id_array = myArray.map(item => item.id);

顺便说一句,为什么要用
item=()=>{return item.id}
对全局变量赋值?去掉
=()
。只需
item=>{return item.id}
。或者用隐式返回:。