关于过滤方法的一个快速问题。 是否可以使用JavaScript过滤器方法返回多个值 因此,我想知道是否可以像这样循环遍历json并过滤值...
var arr = [{
name: 'John',
email: 'johnson@mail.com',
age: 25,
address: 'USA'
},
{
name: 'Tom',
email: 'tom@mail.com',
age: 35,
address: 'England'
},
{
name: 'Mark',
email: 'mark@mail.com',
age: 28,
address: 'England'
}
];
// filter array by name Mark and Tom
const result = arr.filter(function (el) {
return el.name === 'Mark' && el.name ==='Tom';
});
最终结果将是这样:
[Object { name: "Mark", email: "mark@mail.com", age: 28, address: "England" },{ name: "Tom", email: "tom@mail.com", age: 35, address: "England" }]
是否可能发生这种情况?如果没有,最好的方法/方法是什么?
答案 0 :(得分:4)
在传递给filter
的函数中,您要检查名称是否等于“ Mark” OR “ Tom”。这将返回一个数组,其中包含两个匹配的对象。
var arr=[{name:'John',email:'johnson@mail.com',age:25,address:'USA'},{name:'Tom',email:'tom@mail.com',age:35,address:'England'},{name:'Mark',email:'mark@mail.com',age:28,address:'England'}]
// filter array by name Mark and Tom
const result = arr.filter(function (el) {
return el.name === 'Mark' || el.name === 'Tom';
});
console.log(result)
答案 1 :(得分:1)
filters
接受一个数组,并返回匹配某个条件的元素的子集数组。
您必须为要获取的元素提供true
的功能,为其他元素提供false
的功能。
函数中唯一缺少的事情是您需要使用||
(逻辑或)而不是&&
(和)
const result = arr.filter(function (el) {
return el.name === 'Mark' || el.name === 'Tom';
});
因为一个元素的名称可以等于Mark OR Tom,但是没有一个元素的名称同时等于Mark AND Tom。
答案 2 :(得分:1)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#0c2003">
</LinearLayout>