我正在用spread syntax做实验,在特定情况下,我很难合理地理解它的行为。
在一个实例中,当我使用:
const art = ["hello"]
console.log( [{...art}] )
the return value is
=> [ { '0': 'hello' } ]
但是,当我迭代单个数组值时,它会产生完全不同的效果:
const art2 = art.map((item) => ({ ...item }))
console.log(art2)
=> [ { '0': 'h', '1': 'e', '2': 'l', '3': 'l', '4': 'o' } ]
为什么在第一个示例中使用扩展语法只将其与单个索引组合在一起,而在第二个示例中使用.map将其分解为不同的索引元素?由于art数组中只有一项,因此我会假设结果是相同的。
发布于 2018-08-01 13:33:12
const art = ["hello"]
在上面的例子中,您尝试扩展数组。因此,它将为您提供以下输出:
[ { '0': 'hello' } ]
现在,您尝试执行以下一个
const art2 = art.map((item) => ({ ...item }))
所以在这里你使用了map。Map是获取数组中的一个元素并对其应用mapper的东西。在本例中,您的映射器将扩展给定的元素。因此,现在它将扩展您传递的元素。所以你得到的输出是:
[ { '0': 'h', '1': 'e', '2': 'l', '3': 'l', '4': 'o' } ]
https://stackoverflow.com/questions/51624140
复制相似问题