Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.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 根据嵌套对象中存在的特定值筛选JSON对象_Javascript_Json_Ecmascript 6_Filter_Reduce - Fatal编程技术网

Javascript 根据嵌套对象中存在的特定值筛选JSON对象

Javascript 根据嵌套对象中存在的特定值筛选JSON对象,javascript,json,ecmascript-6,filter,reduce,Javascript,Json,Ecmascript 6,Filter,Reduce,您好,我正在尝试筛选JSON响应,以仅获取>=0的值 我的答复如下: 我正在努力实现: 我正在尝试使用es6中的map&filter来实现这一点,但不知道如何才能做到这一点。 到目前为止,我正在尝试一些硬编码的方法 const outputResponse = response .map(value => value) .filter(value => value.AAE[0].amount !== '0') 但它将删除不包含数量“0”的整个对象 感谢您的帮助。您只需调用即可映射

您好,我正在尝试筛选JSON响应,以仅获取>=0的值

我的答复如下:

我正在努力实现:

我正在尝试使用es6中的map&filter来实现这一点,但不知道如何才能做到这一点。 到目前为止,我正在尝试一些硬编码的方法

const outputResponse = response
.map(value => value)
.filter(value => value.AAE[0].amount !== '0') 
但它将删除不包含数量“0”的整个对象


感谢您的帮助。

您只需调用即可映射所有
响应
对象,并删除
AAE
TAE
或具有
金额的目标
值:

let keys = ["AAE", "TAE"];

let result = data.response.map(val => {
  keys.forEach(key => {
    if (val[key] && val[key].some(x => +x.amount <= 0)) {
      delete val[key];
    }
  });
  return val;
});
let key=[“AAE”,“TAE”];
让result=data.response.map(val=>{
keys.forEach(key=>{
如果(val[key]&&val[key].some(x=>+x.amount{
keys.forEach(key=>{

如果(val[key]&&val[key].some(x=>+x.amount
.map(value=>value)
写这篇文章的目的是什么?这就像做
a=a
。我正在学习es6,不知道如何正确操作。好的,在这种情况下,你不需要使用
过滤器
使用
.map()
就足够了,但是你应该正确地变换映射对象。我有20-30个键作为“AAE”和“TAE”,如果每次都不写入if条件,我该如何实现。@VirendersinghRathore如果你可以将所有这些键放在一个数组中并对其进行迭代,请参阅我的Edit.thnx,这非常有用。
const outputResponse = response
.map(value => value)
.filter(value => value.AAE[0].amount !== '0') 
let keys = ["AAE", "TAE"];

let result = data.response.map(val => {
  keys.forEach(key => {
    if (val[key] && val[key].some(x => +x.amount <= 0)) {
      delete val[key];
    }
  });
  return val;
});