js相同名称的对象分别放入不同的数组中及获取每个数组的第一个元素

文章介绍了如何使用JavaScript的reduce()方法根据对象名称分组,以及map()方法获取数组中每个子数组的第一个元素。通过示例展示了如何利用这两个方法处理数组内容。
摘要由CSDN通过智能技术生成

1.如果你想将具有相同名称的对象分别放入不同的数组中,你可以使用 JavaScript 中的 reduce() 方法来实现。在每次迭代过程中,检查当前对象的名称是否已存在于结果数组中,如果存在,则将当前对象添加到对应的数组中,否则创建一个新的数组,并将当前对象添加到该数组中。 

const arr = [
  { name: 'Alice', age: 25 },
  { name: 'Bob', age: 30 },
  { name: 'Alice', age: 35 },
  { name: 'Charlie', age: 40 },
  { name: 'Bob', age: 45 }
];

const filteredArr = arr.reduce((acc, obj) => {
  const foundIndex = acc.findIndex(item => item[0].name === obj.name);
  if (foundIndex !== -1) {
    acc[foundIndex].push(obj);
  } else {
    acc.push([obj]);
  }
  return acc;
}, []);

console.log(filteredArr);

 运行以上代码,将输出具有相同名称的对象组成的数组:

[
  [
    { name: 'Alice', age: 25 },
    { name: 'Alice', age: 35 }
  ],
  [
    { name: 'Bob', age: 30 },
    { name: 'Bob', age: 45 }
  ]
]

2. 如果你不知道数组中有多少索引,但想要访问每个数组的第一个元素,你可以使用 JavaScript 中的 map() 方法。map() 方法可以遍历数组,并对每个元素执行指定的操作,然后返回一个新的数组。

const arr = [
  [1, 2, 3],
  ['a', 'b', 'c'],
  [true, false, true]
];

const firstElements = arr.map(subArray => subArray[0]);

console.log(firstElements);

运行以上代码,将输出每个数组的第一个元素:

[1, 'a', true]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值