如何在javascript中获取内部对象数组?

我使用lodash尝试了flatMap。

       const object = [
    {
        "id": '11',"contactTypes":[
            { 
                "name":"test12","value":"test12"
            },{ 
                "name":"test13","value":"test13"
            },]
    },{
        "id": '12',"contactSucUnsuc":[
            { 
                "name":"test44","value":"test44"
            },{ 
                "name":"test45","value":"test45"
            },]
parseJson(object){
    object.forEach(function(el,i) {
      Object.keys(el).map((key,index)=>{
        if(index==1){
          const allUsers = flatMap(el,function(o){return o[key]});
          console.log(allUsers)
        }
      })
    });
  }

输出应将所有内部对象分组在一个数组中。我尝试了上面的代码,但我不确定,是否有可能做到这一点。请注意,内部对象键将有所不同,不同。

cache03 回答:如何在javascript中获取内部对象数组?

根据您的要求,这应该可以工作!

  var newObj = [];
  for (let i of object) {
                for (let j of Object.values(i)) {
                    if (Array.isArray(j)) {
                        newObj = [...newObj,...j]
                        console.log(newObj)
                    }
                }
            }

另一个更简短的方法:

 newObj = []
            object.forEach(x =>{
                 Object.values(x).filter(y => {
                     if(Array.isArray(y)) newObj = [...newObj,...y]
                 } )
            })
,

另一种方式:

var data = [{
        "id": '11',"contactTypes": [{
                "name": "test12","value": "test12"
            },{
                "name": "test13","value": "test13"
            },]
    },{
        "id": '12',"contactSucUnsuc": [{
                "name": "test44","value": "test44"
            },{
                "name": "test45","value": "test45"
            },];
var expectedList = [];

data.forEach(function(el,i) {
    Object.keys(el).map((key,index) => {
        var temp = el[key];
        if (typeof temp === 'object') {
            temp.forEach(function(obj) {
                expectedList.push(obj);
            })
        }
    })
});

console.log(expectedList)

本文链接:https://www.f2er.com/3167934.html

大家都在问