眼眸繁星
您可以使用Array.prototype.filter()withArray.prototype.flat()方法获得更清晰的代码。首先使用方法获取所有值Object.values()。然后使用filter方法获取数组,最后使用flat方法获取所有子数组元素连接起来的新数组。const input = { value1: 10, value2: 'abcd', value3: [ { v1: 100, v2: 89, }, { v1: 454, v2: 100, }, ], value4: 'xyz', value5: [ { v6: 1, v7: -8, }, { v1: 890, v2: 10, }, ],};const ret = Object.values(input) .filter((x) => Array.isArray(x)) .flat();console.log(ret);
浮云间
我认为读起来可能会更清晰一些:var input = { "value1": 10, "value2": "abcd", "value3": [{ "v1": 100, "v2": 89 }, { "v1": 454, "v2": 100 } ], "value4": "xyz", "value5": [{ "v6": 1, "v7": -8 }, { "v1": 890, "v2": 10 } ]};let res = [];for (let k in input) { if (input.hasOwnProperty(k) && Array.isArray(input[k])) input[k].forEach(x => res.push(x));}console.log(res);