我有一个这样的数组:
var array = [{id: "1"}, {id: "2"}, {id: ""}, {something: "else"}, {id: "3"}, {id: "4"}];
我尝试使用OR语句过滤它:
array.filter(x => x.id != "" || x.id != null);
我试图通过获取ID不是空字符串的对象来过滤数组,ID也不是空。
我期待着这个:
[{id: "1"}, {id: "2"}, {id: "3"}, {id: "4"}];
我得到了这个(同一个数组):
[{id: "1"}, {id: "2"}, {id: ""}, {something: "else"}, {id: "3"}, {id: "4"}];
var array = [{id: "1"}, {id: "2"}, {id: ""}, {something: "else"}, {id: "3"}, {id: "4"}];
var filteredArray = array.filter(x => x.id != "" || x.id != null);
console.log(filteredArray);

我做错了什么?如何使用类似的OR语句过滤数组?
答案 0 :(得分:0)
我真的很蠢......
我需要使用AND语句而不是OR。
array.filter(x => x.id != "" && x.id != null);
var array = [{id: "1"}, {id: "2"}, {id: ""}, {something: "else"}, {id: "3"}, {id: "4"}];
var filteredArray = array.filter(x => x.id != "" && x.id != null);
console.log(filteredArray);
答案 1 :(得分:0)
你的逻辑向后 - 你想要过滤id不是空字符串的项目 AND (使用&&
运算符)not null:
array.filter(x => x.id != "" && x.id != null)
// => [{"id":"1"},{"id":"2"},{"id":"3"},{"id":"4"}]