Javascript 如何从一个对象数组中获取值到另一个对象数组中
我想从一个具有键的对象数组中获取值,并将值放入另一个具有相同键的对象数组中Javascript 如何从一个对象数组中获取值到另一个对象数组中,javascript,reactjs,Javascript,Reactjs,我想从一个具有键的对象数组中获取值,并将值放入另一个具有相同键的对象数组中 const array1 = [{ key1: 7, key2: 1, key3: 37, }]; 我已尝试使用Object.keys从array1对象获取所有关键点 const keys = Object.keys(obj); 但过了一段时间,它就没有意义了 期望数组 const resul
const array1 = [{
key1: 7,
key2: 1,
key3: 37,
}];
我已尝试使用Object.keys从array1对象获取所有关键点
const keys = Object.keys(obj);
但过了一段时间,它就没有意义了
期望数组
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')
}
]
我希望输出为将在array2中的“number”键中输入的键的值。您可以迭代array2中的每个对象,并添加从array1获取的数字值
常量数组1=[{
关键1:7,
关键2:1,
键3:37,
}];
常数数组2=[
{
标题:“一些标题1”,
键:“键1”,
编号:'',
图标:“../assets/some2.png”
},
{
标题:“一些标题2”,
键:“键2”,
编号:'',
图标:“../assets/some1.png”
},
{
标题:“一些标题3”,
键:“键3”,
编号:'',
图标:“../assets/some3.png”
},
];
array2.forEach(e=>e.number=array1[0][e.key]);
log(array2)
您可以从array2遍历每个对象,并添加从array1获取的数值
常量数组1=[{
关键1:7,
关键2:1,
键3:37,
}];
常数数组2=[
{
标题:“一些标题1”,
键:“键1”,
编号:'',
图标:“../assets/some2.png”
},
{
标题:“一些标题2”,
键:“键2”,
编号:'',
图标:“../assets/some1.png”
},
{
标题:“一些标题3”,
键:“键3”,
编号:'',
图标:“../assets/some3.png”
},
];
array2.forEach(e=>e.number=array1[0][e.key]);
log(array2)
您可以通过将键作为键的访问器来映射新的数组
const
array1=[{key1:7,key2:1,key3:37}],
array2=[{title:'Some title 1',key:'key1',number:'',图标:'../../assets/some2.png'},{title:'Some title 2',key:'key2',number:'',图标:'../../assets/some1.png'},{title:'Some title 3',key:'key3',number:'icon:'../../assets/some3.png'},
result=array2.map(o=>Object.assign({},o,{number:array1[0][o.key]}));
控制台日志(结果)
您可以通过将键
作为键的访问器来映射新数组
const
array1=[{key1:7,key2:1,key3:37}],
array2=[{title:'Some title 1',key:'key1',number:'',图标:'../../assets/some2.png'},{title:'Some title 2',key:'key2',number:'',图标:'../../assets/some1.png'},{title:'Some title 3',key:'key3',number:'icon:'../../assets/some3.png'},
result=array2.map(o=>Object.assign({},o,{number:array1[0][o.key]}));
控制台日志(结果)代码>下面的代码帮助您:-
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')
},
];
array2.forEach(item=>{
item.number=array1[item.key]
})
下面的代码帮助您:-
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')
},
];
array2.forEach(item=>{
item.number=array1[item.key]
})
常量数组1=[{
关键1:7,
关键2:1,
}];
常数数组2=[
{
标题:“一些标题1”,
键:“键1”,
编号:'',
图标:“../assets/some2.png”
},
{
标题:“一些标题2”,
键:“键2”,
编号:'',
图标:“../assets/some1.png”
},
{
标题:“一些标题3”,
键:“键3”,
编号:'',
图标:“../assets/some3.png”
},
];
const resultArray=array2.filter(item=>array1[0][item.key]);
console.log(resultArray)代码>
常量数组1=[{
关键1:7,
关键2:1,
}];
常数数组2=[
{
标题:“一些标题1”,
键:“键1”,
编号:'',
图标:“../assets/some2.png”
},
{
标题:“一些标题2”,
键:“键2”,
编号:'',
图标:“../assets/some1.png”
},
{
标题:“一些标题3”,
键:“键3”,
编号:'',
图标:“../assets/some3.png”
},
];
const resultArray=array2.filter(item=>array1[0][item.key]);
console.log(resultArray)代码>这应该适合您。
const key=[
{
关键1:7,
关键2:1,
键3:37,
},
{
关键4:7,
关键5:1,
键6:37,
}
];
常数数组2=[
{
标题:“一些标题1”,
键:“键4”,
编号:“”
},
{
标题:“一些标题2”,
键:“键2”,
编号:“”
},
{
标题:“一些标题3”,
键:“键3”,
编号:“”
}
];
函数populateArrayData(arr、propToCompare、propToReplace、KeyObj){
让populatedArray=[];
if(数组isArray(arr)){
populatedArray=arr.map((项)=>{
如果(checkIfKeyExists(项目[propToCompare],KeyObj)){
item[propToReplace]=KeyObj[item[propToCompare]];
}
退货项目;
});
}
返回填充数组;
}
功能所有键(键){
设flattedKeysObj={};
if(数组.isArray(键)){
展平键对象=键。减少((acc,键对象)=>{
acc={…acc,…keysObj};
返回acc;
}, {});
}
返回平坦的keysobj;
}
函数checkIfKeyExists(键,keysObj){
返回(keysObj[key]!==未定义和&keysObj[key]!==空);
}
设展平键=展平所有键(键);
log(populateArrayData(array2,'key','number',flattedKeys));
这应该适合您。
const key=[
{
关键1:7,
关键2:1,
键3:37,
},
{
关键4:7,
关键5:1,
键6:37,
}
];
常数数组2=[
{
标题:“一些标题1”,
键:“键4”,
编号:“”
},
{
标题:“一些标题2”,
键:“键2”,
编号:“”
},
{
标题:“一些标题3”,
键:“键3”,
编号:“”
}
];
函数populateArrayData(arr、propToCompare、propToReplace、KeyObj){
让populatedArray=[];
if(数组isArray(arr)){
populatedArray=arr.map((项)=>{
如果(checkIfKeyExists(项目[propToCompare],KeyObj)){
item[propToReplace]=KeyObj[item[propToCompare]];
}
退货项目;
});
}
返回填充数组;
}
功能所有键(键){
设flattedKeysObj={};
if(数组)isArray(键
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')
},
];
array2.forEach(item=>{
item.number=array1[item.key]
})