gpt4 book ai didi

javascript - 如何访问嵌套数组/对象并过滤数组的非空元素,如 NaN,null,0

转载 作者:行者123 更新时间:2023-11-28 16:41:53 24 4
gpt4 key购买 nike

下面是对象数组。我们要做的是

  1. 创建一个数组,其中包含数组 arr 的所有非空元素,且值不等于 null、NaN、'undefined' 和 0
  2. 保留在第二个数组中
var arr = [
  { id: 15 },
  { id: -1 },
  { id: 0 },
  { id: 3 },
  { id: 12.2 },
  {},
  { id: null },
  { id: NaN },
  { id: "undefined" }
];


我尝试过的是


var obj1 = {};
var prop1 = [];
var prop2 = [];
arr.forEach(el=>{
if(el.id!==0 || el.id!==null || el.id!==undefined || el.id!==NaN){
prop1.push(el)
}
else{
prop2.push(el)
}
})
console.log(prop1)

console.log(prop2)

但它不起作用

我收到的输出 -

1] [{id: 15}, {id: -1}, {id: 0}, {id: 3}, {id: 12.2}, {}, {id: null}, {id: null}, {id: "undefined"}]

2] []

预期 -

1] [{id: 0}, {id: null}, {id: "undefined"}]

2] [{id: 15}, {id: -1}, {id: 3}, {id: 12.2}]

最佳答案

您可以转换为 bool 值(!el.id),这将处理大多数情况,并且您必须单独处理“undefined”:

var arr = [
{ id: 15 },
{ id: -1 },
{ id: 0 },
{ id: 3 },
{ id: 12.2 },
{},
{ id: null },
{ id: NaN },
{ id: "undefined" }
];

var obj1 = {};
var prop1 = [];
var prop2 = [];
arr.forEach(el=>{
if(!el.id || el.id === "undefined"){
prop1.push(el)
}
else{
prop2.push(el)
}
})

console.log(prop1);
console.log(prop2);
console.log(prop1.length);
console.log(prop2.length);

关于javascript - 如何访问嵌套数组/对象并过滤数组的非空元素,如 NaN,null,0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61072404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com