js map循环参数问题?

HUPVBXZ)B$K~U(6E_`5973Y.png
JHLZAU1{F_KK@W[XJJIVOJI.png

map后面的[key,value]这么写打印了对应的key和value,不太明白是怎么对应打印出来的,求解

这个中括号代表了map里面的第一个参数,然后中括号里面的第一个参数代表数组里面的第0项?

阅读 2.5k
3 个回答

entries()返回的是一个对象的key - value数组:[[key0, value0], [key1, value1]]

const obj = { foo: 'bar', baz: 42 };
console.log(Object.entries(obj)); // [ ['foo', 'bar'], ['baz', 42] ]

在用map()每次遍历的值是里面的[key, value],在参数里通过es6的数组解构就拿到了对应对象的key和value

Object.entries 得到的是 [string, any][] 的数组。

那么对这个数组 map,箭头函数拿到的元素类型就是 [string, any]

(item) => console.log(item),打印出来就是 [ "name", "" ],……

([ key, value ]) => ...数组解构的语法。数组解构可以直接写在形参里,这里把数组的两个元素绑定到 keyvalue 上。

这就相当于你写

(item) => {
    const [ key, value ] = item
    ...
}

数组解构

var [a,b,c,d] = [1,2,3,4,5]
console.log(a,b,c,d) //1 2 3 4
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题