Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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 - Fatal编程技术网

Javascript映射嵌套元素

Javascript映射嵌套元素,javascript,Javascript,是否有ES6方法可以轻松过滤掉不需要的列?假设我们有以下数据: const foo = [ { a:'blah', b:'blah', c:'blah', d:[ { a:'blah', b:'blah', c:'blah', e:'blah', f:'blah'}, { a:'blah', b:'blah', c:'blah', e:'blah', f:'blah'}, { a:'blah', b:'blah',

是否有ES6方法可以轻松过滤掉不需要的列?假设我们有以下数据:

const foo = [
  { 
    a:'blah', 
    b:'blah', 
    c:'blah', 
    d:[
      { a:'blah', b:'blah', c:'blah', e:'blah', f:'blah'},
      { a:'blah', b:'blah', c:'blah', e:'blah', f:'blah'},
      { a:'blah', b:'blah', c:'blah', e:'blah', f:'blah'},
      //... N number of objects     
    ],
  },
  { 
    a:'blah', 
    b:'blah', 
    c:'blah', 
    d:[
      { a:'blah', b:'blah', c:'blah', e:'blah', f:'blah'},
      { a:'blah', b:'blah', c:'blah', e:'blah', f:'blah'},
      { a:'blah', b:'blah', c:'blah', e:'blah', f:'blah'},
      //... N number of objects     
    ],
  },
  //... N number of objects     
];
我想过滤掉e和f值,因此我只有以下内容:

[
  { 
    a:'blah', 
    b:'blah', 
    c:'blah', 
    d:[
      { a:'blah', b:'blah', c:'blah' },
      { a:'blah', b:'blah', c:'blah' },
      { a:'blah', b:'blah', c:'blah' },
      //... N number of objects     
    ],
  },
  { 
    a:'blah', 
    b:'blah', 
    c:'blah', 
    d:[
      { a:'blah', b:'blah', c:'blah' },
      { a:'blah', b:'blah', c:'blah' },
      { a:'blah', b:'blah', c:'blah' },
      //... N number of objects     
    ],
  },
  //... N number of objects     
]
我想可能与此类似,但我不确定如何处理d值:

.map(x=>{ return {a: x.a, b: x.b, c: x.c, d:x.d}})

编辑:有没有办法不引用不需要的值e或f?换言之,仅通过引用您希望保留a、b、c、d的值,这也是一种解决方案,但并非迄今为止最好的解决方案:

var result = foo.map( e => {
      delete e.d[0].e;
      delete e.d[0].f;
      return e;
});

console.log(result);
这项工作可以以动态的方式进行

编辑:我使此解决方案更具动态性:

var unwantedIndex = [
  'e', 'f'
];

var r = foo.map( e => {
    for (let data of e.d) {
        for (let indx of unwantedIndex) {
            if (data[indx]) {
                delete data[indx];
            }
        }
    }

   return e;
});

console.log(r);

这也是一个解决方案,但不是迄今为止最好的:

var result = foo.map( e => {
      delete e.d[0].e;
      delete e.d[0].f;
      return e;
});

console.log(result);
这项工作可以以动态的方式进行

编辑:我使此解决方案更具动态性:

var unwantedIndex = [
  'e', 'f'
];

var r = foo.map( e => {
    for (let data of e.d) {
        for (let indx of unwantedIndex) {
            if (data[indx]) {
                delete data[indx];
            }
        }
    }

   return e;
});

console.log(r);

使用贴图遍历阵列并对不需要的对象进行切片。您创建的数组是错误的,它从来没有键值对。也解决了这个问题

常数foo=[ { a:‘废话’, b:‘废话’, c:‘废话’, d:[ {a:'blah',b:'blah',c:'blah',e:'blah',f:'blah'}, {a:'blah',b:'blah',c:'blah',e:'blah',f:'blah'}, {a:'blah',b:'blah',c:'blah',e:'blah',f:'blah'}, //…N对象数 ], }, { a:‘废话’, b:‘废话’, c:‘废话’, d:[ {a:'blah',b:'blah',c:'blah',e:'blah',f:'blah'}, {a:'blah',b:'blah',c:'blah',e:'blah',f:'blah'}, {a:'blah',b:'blah',c:'blah',e:'blah',f:'blah'}, //…N对象数 ], }, //…N对象数 ]; console.logfoo.mape=>{ e、 d.forEachx=>{delete x.e;delete x.f} 返回e;
} 使用贴图遍历阵列并对不需要的对象进行切片。您创建的数组是错误的,它从来没有键值对。也解决了这个问题

常数foo=[ { a:‘废话’, b:‘废话’, c:‘废话’, d:[ {a:'blah',b:'blah',c:'blah',e:'blah',f:'blah'}, {a:'blah',b:'blah',c:'blah',e:'blah',f:'blah'}, {a:'blah',b:'blah',c:'blah',e:'blah',f:'blah'}, //…N对象数 ], }, { a:‘废话’, b:‘废话’, c:‘废话’, d:[ {a:'blah',b:'blah',c:'blah',e:'blah',f:'blah'}, {a:'blah',b:'blah',c:'blah',e:'blah',f:'blah'}, {a:'blah',b:'blah',c:'blah',e:'blah',f:'blah'}, //…N对象数 ], }, //…N对象数 ]; console.logfoo.mape=>{ e、 d.forEachx=>{delete x.e;delete x.f} 返回e; } 使用,以及

(a:“布拉H”,b:“布拉H”,c:“布拉H”,d:[[a:“布拉H”,b:“布拉H”,b:“布拉H”,c:“布拉H”,c:“布拉H”,b:“布拉H”,c:“布拉H”,b:“布拉H”,b:“布拉H”,b:[a:“布拉H”,b:[a:“布拉H,[a:“布拉H”,b:“布拉H”,b:“布拉H”,b:“布拉H”,b:“布拉H”,b:“布拉H”,b:,e:“布拉H”,e:“布拉H”,e:“布拉H”,e:,e:,e:,e:,e:,e:,e:,e:,e:,e:,e:,e:,f:,f:,f:,f:,f:,f:,f:,f:,f:,f:,f:,f:,f:,f:,f:,f:,f:,f{a:'blah',b:'blah',c:'blah',e:'blah',f:'blah'},{a:'blah',b:'blah',c:'blah',e:'blah',f:'blah'},],},] const res=foo.map{d,…rest}=>{ 返回{…rest,d:d.map{e,f,…rest}=>{…rest} }; console.logres;使用,以及

(a:“布拉H”,b:“布拉H”,c:“布拉H”,d:[[a:“布拉H”,b:“布拉H”,b:“布拉H”,c:“布拉H”,c:“布拉H”,b:“布拉H”,c:“布拉H”,b:“布拉H”,b:“布拉H”,b:[a:“布拉H”,b:[a:“布拉H,[a:“布拉H”,b:“布拉H”,b:“布拉H”,b:“布拉H”,b:“布拉H”,b:“布拉H”,b:,e:“布拉H”,e:“布拉H”,e:“布拉H”,e:,e:,e:,e:,e:,e:,e:,e:,e:,e:,e:,e:,f:,f:,f:,f:,f:,f:,f:,f:,f:,f:,f:,f:,f:,f:,f:,f:,f:,f{a:'blah',b:'blah',c:'blah',e:'blah',f:'blah'},{a:'blah',b:'blah',c:'blah',e:'blah',f:'blah'},],},] const res=foo.map{d,…rest}=>{ 返回{…rest,d:d.map{e,f,…rest}=>{…rest} };
console.logres;您可以解构不需要的属性,并获取属性的其余参数。对于嵌套数组,您还需要迭代

常数 过滤器={e,f,…rest}=>{ 对象 .entriesrest .filter[,v]=>Array.isArrayv .forEach[k,v]=>Object.assignrest,{[k]:v.mapfilter}; 返回休息; }, foo=[{a:'blah',b:'blah',c:'blah',d:[{a:'blah',b:'blah',b:'blah',c:'blah',e:'blah',c:'blah',d:{a:'blah',b:'blah',b:'blah',c:'blah',c:'blah',c:'blah',f:'blah'},{a:'blah',b:'blah',c:'blah',b:'blah'',{a:'blah',b:'blah',c:'blah',e:'blah',f:'blah'},{a:'blah',b:'blah',c:'blah',e:'blah',f:'blah'}]}; console.logfoo.mapfilter;
.作为控制台包装{max height:100%!important;top:0;}您可以解构不需要的属性,并获取属性的其余参数。对于嵌套数组,您还需要迭代

常数 过滤器={e,f,…rest}=>{ 对象 .entriesrest .filter[,v]=>Array.isArrayv .forEach[k,v]=>Object.assignrest,{[k]:v.mapfilter}; 返回休息; }, foo=[{a:'blah',b:'blah',c:'blah',d:[{a:'blah',b:'blah',c:'blah',e:'blah',f:'blah'},{a:'blah',b:'blah',c:'blah',e:'blah',f:'blah' }]{a:'blah',b:'blah',c:'blah',d:[{a:'blah',b:'blah',c:'blah',e:'blah',f:'blah'},{a:'blah',b:'blah',c:'blah',e:'blah',c:'blah',e:'blah'},{; console.logfoo.mapfilter;
.作为控制台包装器{max height:100%!important;top:0;}您的数据无效,因为数组不能有文字表示法的属性。我猜您的意思是d:[{a:'blah',b:'blah',c:'blah',e:'blah',f:'blah'}]而不是d:[a:'blah',b:'blah',c:'blah',e:'blah',f:'blah']修复了错误。谢谢你可以这样做吗?foo.mapx=>{return{a:x.a,b:x.b,c:x.c,d:x.d.mapxxxxxx}}你的数据无效,因为数组不能有文字符号的属性。我猜你的意思是d:[{a:'blah',b:'blah',c:'blah',e:'blah',f:'blah}]而不是d:[a:'blah',b:'blah',c:'blah',e:'blah',f:'blah']修复了错误。谢谢你能这样做吗?foo.mapx=>{return{a:x.a,b:x.b,c:x.c,d:x.d.mapxxxxxx}}对不起,修复了我的打字错误。我们的结构不同,所以请重新检查原始帖子对不起,修复了我的打字错误。我们的结构不同,请重新检查原始postGreat,谢谢!有没有一种方法可以在不引用不需要的值e或f的情况下执行此操作?换句话说,仅通过引用要保留的值a、b、c、dGreat,谢谢!有没有一种方法可以在不引用不需要的值e或f的情况下执行此操作?换句话说,仅通过引用要保留的值a、b、c、d