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

标签 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) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
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_array:

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

据我所知, map 函数的工作原理是值未正确读取。我错过了什么?

最佳答案

好的,所以麻烦的那行是

let id_array = myObj.map(item = () => {return item.id});

其读作“将箭头函数分配给项目变量,然后将其插入到映射函数以生成新数组。当然,这没有任何意义,因为箭头函数中的项目将是未定义的。以下就是您想要的

let id_array = myObj.map(item => {return item.id});

另外,为什么不调用 myObj、myArray,以避免混淆。因为它实际上是一个数组。最好使用简写

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

关于javascript - 用于从 JSON 传递数据的数组映射方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56587784/

相关文章:

Javascript:主题标签正则表达式不起作用

javascript - readmore.js 将 "readmore"链接放在不低于 div 的内部

javascript - SVG 中文本的动态定位

javascript - Ember 应用程序套件 - 扩展 super 路线

javascript - JavaScript : ~~n, n|0 或 Math.floor(n) 中的底数?

javascript - 动态添加的输入框不是动态绑定(bind)的

javascript - jslint.com |不识别 localStorage

javascript - 选中单选按钮时启用 HTML 选择,反之亦然

javascript - 用前缀替换外括号

javascript - ngfor 中的自定义过滤器管道〜错误 TypeError : Cannot read property 'filter' of undefined