Javascript 基于输入筛选动态关键帧
我有一个数组,需要根据输入字符串筛选出键。只有Javascript 基于输入筛选动态关键帧,javascript,node.js,Javascript,Node.js,我有一个数组,需要根据输入字符串筛选出键。只有OLD_VAL是静态的,其余是动态的。我试着使用这个变量,但它没有带来那个键 let input = VKORG,VTWEG,MATNR; let arr = [ { VKORG: 1100, VTWEG: 10, MATNR: 12, RATE: 0.01, VALUE: 1, OLD_VAL: 12, }, { VKORG: 2100, VTWEG: 99, MA
OLD_VAL
是静态的,其余是动态的。我试着使用这个变量,但它没有带来那个键
let input = VKORG,VTWEG,MATNR;
let arr = [
{
VKORG: 1100,
VTWEG: 10,
MATNR: 12,
RATE: 0.01,
VALUE: 1,
OLD_VAL: 12,
},
{
VKORG: 2100,
VTWEG: 99,
MATNR: 13,
RATE: 0.11,
VALUE: 11,
OLD_VAL: 12,
},
];
输出:
[
{
VKORG: "1100",
VTWEG: 10,
MATNR: "12",
OLD_VAL: 12,
},
{
VKORG: "2100",
VTWEG: 99,
MATNR: "13",
OLD_VAL: 12,
},
];
代码已尝试
let filterResults = results.map(({ OLD_VAL,input }) => ({ OLD_VAL, input }))
假设
input
是一个字符串数组,您可以使用Object.entries
并在每次迭代时创建一个对象,该对象由键值对组成,其中键
是从input
获得的
const input=['VKORG','VTWEG','MATNR']
常数arr=[{
VKORG:1100,
VTWEG:10,
材料编号:12,
比率:0.01,
价值:1,
老瓦尔:12岁,
},
{
VKORG:2100,
VTWEG:99,
材料编号:13,
比率:0.11,
价值:11,
老瓦尔:12岁,
}
]
const result=arr.map(el=>Object.fromEntries(input.map(key=>[key,el[key]]).concat([[OLD\u VAL',el.OLD\u VAL]]));
控制台日志(结果)代码>您可以通过以下任一方式执行此操作:
好久不见了
const newArr = [];
for(let obj of arr) {
let newObj = {}
for(let key of input) {
console.log(key)
newObj[key] = obj[key]
}
newArr.push(newObj);
}
或者使用数组接口的map和reduce方法:
arr.map( e => input.reduce((acc, key) => {
acc[key] = e[key];
return acc;
},{}))
PS:别忘了对象键是字符串,所以输入变量应该是:
const input = ['VKORG', 'VTWEG', 'MATNR']
这是什么?您是否有一个字符串数组?