我想从一个带有键的对象数组中获取值,并将值从另一个带有相同键的对象数组中获取。
const array1 = [{
key1: 7,
key2: 1,
key3: 37,
}];
const array2 = [
{
title: 'Some Title 1',
key: 'key1',
number: '',
icon: require('../../assets/some2.png')
},
{
title: 'Some Title 2',
key: 'key2',
number: '',
icon: require('../../assets/some1.png')
},
{
title: 'Some Title 3',
key: 'key3',
number: '',
icon: require('../../assets/some3.png')
},
];
我曾尝试使用Object.keys从array1对象获取所有键。
const keys = Object.keys(obj);
keys.map((key) => {
if (array2[key] === key) {
// console.log('card detail matching');
// add to the array 2 with value
}
})
但是在一点之后没有意义。
期望数组
const resultArray = [
{
title: 'Some Title 1',
key: 'key1',
number: 7,
icon: require('../../assets/some2.png')
},
{
title: 'Some Title 2',
key: 'key2',
number: 1,
icon: require('../../assets/some1.png')
},
{
title: 'Some Title 3',
key: 'key3',
number: 37,
icon: require('../../assets/some3.png')
}
]
我希望输出是键的值,将在'number'键的array2中输入。
您可以遍历array2中的每个对象并添加从array1中获取的数字值
const array1 = [{
key1: 7,
key2: 1,
key3: 37,
}];
const array2 = [
{
title: 'Some Title 1',
key: 'key1',
number: '',
icon: '../../assets/some2.png'
},
{
title: 'Some Title 2',
key: 'key2',
number: '',
icon: '../../assets/some1.png'
},
{
title: 'Some Title 3',
key: 'key3',
number: '',
icon: '../../assets/some3.png'
},
];
array2.forEach(e => e.number = array1[0][e.key]);
console.log(array2)
您可以通过将key
作为键来映射新数组。
const
require = () => undefined;
array1 = [{ key1: 7, key2: 1, key3: 37 }],
array2 = [{ title: 'Some Title 1', key: 'key1', number: '', icon: require('../../assets/some2.png') }, { title: 'Some Title 2', key: 'key2', number: '', icon: require('../../assets/some1.png') }, { title: 'Some Title 3', key: 'key3', number: '', icon: require('../../assets/some3.png') }],
result = array2.map(o => Object.assign({}, o, { number: array1[0][o.key] }));
console.log(result);