我有一个过滤数据的问题,这是我的数据:
var data = {
CustomerInfo: [{ id : 3, name: "c" }],
detail: {company: "Google"},
location: {country: "Italy"},
CustomerInfo2: [{ id : 4, name: "d" }]
};
我想打印不是对象格式(
data[x][x] !== 'object'
)的每个名称。例如,仅打印“公司”和“国家”。这是我的代码:
var dataFiltered = Object.keys(data).filter(function(parent){
return Object.keys(data[parent]).filter(function(child){
return typeof data[parent][child] !== 'object';
});
}).reduce(function(prev, child) {
console.log(prev + " >>> " + data[child]);
});
我对过滤器内部的过滤器感到困惑。
最后我想要这个结果:
company >>> Google
country >>> Italy
最佳答案
你可以做
var data = {
CustomerInfo: [{ id : 3, name: "c" }],
detail: {company: "Google"},
location: {country: "Italy"},
CustomerInfo2: [{ id : 4, name: "d" }]
};
let result = Object.keys(data).reduce((a, b) => {
if(typeof data[b] == 'object'){
for(let element of Object.keys(data[b])){
if(typeof data[b][element] != 'object'){
a.push(data[b][element]);
console.log(element, '>>>', data[b][element]);
}
}
}
return a;
},[]);
console.log(result)
关于javascript - 在JavaScript的filter()中使用filter(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46411433/