let array = [ { name: 111, id: 1 }, { name: 222, id: 2 }, { name: 111, id: 3 }, { name: 111, id: 4 }, { name: 222, id: 5 }, ] let bb = [ { name: 111, id: [1, 3, 4] }, { name: 222, id: [2.5] }, ]将array的数组转化为bb的数组
时间: 2024-02-24 21:57:26 浏览: 45
可以使用 JavaScript 中的 reduce 方法来实现这个功能。具体实现代码如下:
```javascript
let array = [
{ name: 111, id: 1 },
{ name: 222, id: 2 },
{ name: 111, id: 3 },
{ name: 111, id: 4 },
{ name: 222, id: 5 },
];
let result = array.reduce((acc, cur) => {
let obj = acc.find(item => item.name === cur.name);
if (!obj) {
obj = { name: cur.name, id: [] };
acc.push(obj);
}
obj.id.push(cur.id);
return acc;
}, []);
console.log(result);
```
首先使用 reduce 方法将数组中的对象按照 name 属性进行分类,将相同 name 的对象的 id 构成的数组放在同一个对象中。最终得到的 result 数组中的对象的 name 属性与 bb 数组中的对象相同,id 属性是相同 name 对象的 id 构成的数组。
相关问题
let array = [ { name: 111, id: 1 }, { name: 222, id: 2 }, { name: 111, id: 3 }, { name: 111, id: 4 }, { name: 222, id: 5 }, ] 取出name一致,中的id
可以使用 JavaScript 中的 reduce 和 filter 方法来实现这个功能。具体实现代码如下:
```javascript
let array = [
{ name: 111, id: 1 },
{ name: 222, id: 2 },
{ name: 111, id: 3 },
{ name: 111, id: 4 },
{ name: 222, id: 5 },
];
let result = array.reduce((acc, cur) => {
if (!acc[cur.name]) {
acc[cur.name] = [];
}
acc[cur.name].push(cur.id);
return acc;
}, {});
console.log(result['111']); // [1, 3, 4]
```
首先使用 reduce 方法将数组中的对象按照 name 属性进行分类,将相同 name 的对象放在同一个数组中。最终得到的 result 对象的 key 是 name,value 是相同 name 对象的 id 构成的数组。最后可以通过 result 对象的属性访问对应的 id 数组。
let arr = [{spuId: 647, name: 'aa'}, {spuId: 648, name: 'bb'}] let b = { spuId: 647} 在js中, 我需要从arr中剔除掉 b中spuId相等的那一项
在JavaScript中,你可以使用`filter()`方法结合`Object.keys()`和`indexOf()`来实现这个需求。首先,你需要找出`b`的对象在`arr`中的索引,然后用`Array.prototype.splice()`方法来删除对应项。这里是一个示例:
```javascript
let arr = [{ spuId: 647, name: 'aa' }, { spuId: 648, name: 'bb' }];
let b = { spuId: 647 };
// 获取b在arr中的索引
let index = arr.findIndex(obj => obj.spuId === b.spuId);
// 如果找到了匹配项
if (index !== -1) {
// 删除匹配项
arr.splice(index, 1);
}
console.log(arr); // 结果将是 [{ spuId: 648, name: 'bb' }]
```
如果你确定`b`的对象一定存在并且只有一个,那么`findIndex()`就能确保找到唯一的一项。如果没有找到,`findIndex()`会返回 `-1`。
阅读全文