我有一个对象数组:
let json = [
{cat: 'one', device: 'iphone', site: 'google', val1:10, val2:20, val3:30},
{cat: 'two', device: 'iphone', site: 'bing', val1:23, val2:12, val3:14},
{cat: 'three', device: 'iphone', site: 'jeeves', val1:67, val2:78, val3:12},
{cat: 'four', device: 'ipad', site: 'google', val1:10, val2:20, val3:30},
{cat: 'five', device: 'ipad', site: 'bing', val1:23, val2:12, val3:14},
{cat: 'six', device: 'ipad', site: 'jeeves', val1:67, val2:78, val3:12},
{cat: 'seven', device: 'mac', site: 'google', val1:10, val2:20, val3:30},
{cat: 'eight', device: 'mac', site: 'bing', val1:23, val2:12, val3:14},
{cat: 'nine', device: 'mac', site: 'jeeves', val1:67, val2:78, val3:15}
]
然后我有一个数组:arr = ['device', 'object']
我有一个对象:
obj= {
a: 'one',
}
我想将数组中的任何内容(在本例中为['device', 'object']
(添加到obj.
在上面的例子中,我希望obj看起来像这些对象数组:
[
{
a: 'one',
device: 'iphone'
object: 'google'
},
{
a: 'two',
device: 'iphone'
object: 'bing'
},
{
a: 'three',
device: 'iphone'
object: 'jeeves'
},
.........
]
键数组(arr(可能不同,因此不确定如何编写可重用函数。
如果我理解得对,你可以这样做。我假设您的json
和obj
已排序,并且具有相同的列表,否则您还需要通过cat
进行搜索,以在json
中找到正确的行
const json = [
{cat: 'one', device: 'iphone', site: 'google', val1:10, val2:20, val3:30},
{cat: 'two', device: 'iphone', site: 'bing', val1:23, val2:12, val3:14},
{cat: 'three', device: 'iphone', site: 'jeeves', val1:67, val2:78, val3:12},
]
const objs = [
{
a: 'one',
},
{
a: 'two',
},
{
a: 'three',
},
]
const arr = ['device', 'site']
const result = objs.map((obj, i) => {
arr.forEach(key => {
obj[key] = json[i][key]
})
return obj
})
console.log(result)