我有这样一个数组:
var array = [{id: "1"}, {id: "2"}, {id: ""}, {something: "else"}, {id: "3"}, {id: "4"}];
而我正在尝试使用OR语句过滤它:
array.filter(x => x.id != "" || x.id != null);
我试图通过获取ID不是空字符串的对象来过滤数组,也不是ID为null。
我期待这个:
[{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语句过滤数组?
我真的很蠢......
我需要使用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);
你的逻辑向后 - 你想要过滤id不是空字符串的项目AND(使用&&
运算符)not null:
array.filter(x => x.id != "" && x.id != null)
// => [{"id":"1"},{"id":"2"},{"id":"3"},{"id":"4"}]