如何使用JS从对象数组中提取多个指定属性值存入同一数组?
你现有代码的错误原因是 Array.map() 仅接收第一个参数作为遍历回调函数,传入的第二个参数会被识别为回调执行时的this绑定值,不会执行第二个提取Year的逻辑,因此只能得到仅包含Title的数组。
如果你需要将所有对象的Title、Year属性值按顺序平铺存入一维数组,也就是你预期的["AAAA", "BBB"]结构,推荐两种实现方式:
- 方案1:
map+flat组合写法
const test = [{ Title: 'AAAA', Year: 'BBB', Runtime:'100min', Director:'CCC' }] const movies1 = test.map(item => [item.Title, item.Year]).flat() console.log(movies1) // 输出:['AAAA', 'BBB']
- 方案2:
flatMap一步实现(写法更简洁)
const movies1 = test.flatMap(item => [item.Title, item.Year]) console.log(movies1) // 输出:['AAAA', 'BBB']
如果原数组包含多个对象,上述写法会按照「第一个对象Title、第一个对象Year、第二个对象Title、第二个对象Year……」的顺序拼接为一维数组,符合需求。
内容的提问来源于stack exchange,提问作者Nick94
相关产品推荐
相关产品推荐

