Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于输入筛选动态关键帧_Javascript_Node.js - Fatal编程技术网

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']

这是什么?您是否有一个字符串数组?