一个数组 有一个字段名name为1 需要转为 另一个数组里的对应id为1 里的对象的name拿过 如何把第一组的name值 转为 对应的另一个数组里的name值
时间: 2024-02-12 20:09:23 浏览: 24
假设你有两个数组,一个是包含name字段的数组,另一个是包含id和name字段的对象数组。你可以使用Array.prototype.find()方法在第二个数组中查找具有匹配id的对象,然后返回该对象的name属性。最后你可以使用Array.prototype.map()方法将第一个数组中每个元素的name属性替换为对应的对象的name属性。示例代码如下:
```javascript
const arr1 = [{ name: '1' }, { name: '2' }, { name: '3' }];
const arr2 = [{ id: 1, name: 'foo' }, { id: 2, name: 'bar' }, { id: 3, name: 'baz' }];
// 将arr1中每个元素的name属性替换为对应的arr2中对象的name属性
const result = arr1.map(item => {
const matchedObj = arr2.find(obj => obj.id === parseInt(item.name));
return matchedObj ? { ...item, name: matchedObj.name } : item;
});
console.log(result);
// 输出结果为: [{ name: 'foo' }, { name: 'bar' }, { name: 'baz' }]
```
在上面的例子中,我们首先使用map()方法遍历arr1数组中的每个元素。在每次遍历时,我们使用find()方法在arr2数组中查找具有id为当前元素name属性的对象。如果找到了匹配的对象,我们就返回一个新的对象,该对象的name属性被替换为匹配对象的name属性。如果没有找到匹配的对象,我们就返回原始对象。最后,我们得到了一个新数组,其中每个元素的name属性都被替换为了对应的arr2中对象的name属性。