Javascript 在数组中的数组上进行过滤,有没有一种优雅的方法?
这个一直对我很有用Javascript 在数组中的数组上进行过滤,有没有一种优雅的方法?,javascript,Javascript,这个一直对我很有用 var myProperty = "FOO" var expenseSelect = expenseArray.filter(function(obj){ return obj.property == myProperty }); 但是现在我遇到了这样一种情况,obj.property是expenseArray中的一个属性数组[“FOO”、“BAR”、“WEE”] 有没有一个聪明的方法可以做到这一点?或者我必须在循环中执行整个循环吗?如果要检查myPropert
var myProperty = "FOO"
var expenseSelect = expenseArray.filter(function(obj){
return obj.property == myProperty
});
但是现在我遇到了这样一种情况,obj.property是expenseArray中的一个属性数组[“FOO”、“BAR”、“WEE”]
有没有一个聪明的方法可以做到这一点?或者我必须在循环中执行整个循环吗?如果要检查myProperty是否在数组中,可以使用
var myProperty=“FOO”
var expenseSelect=expenseArray.filter(函数(obj){
返回对象属性包括(myProperty);
}); 代码>如果要检查myProperty是否在数组中,可以使用
var myProperty=“FOO”
var expenseSelect=expenseArray.filter(函数(obj){
返回对象属性包括(myProperty);
}); 代码>使用该方法测试数组中是否至少有一个元素通过了所提供函数实现的测试,它可以是一个简单的选项
var myProperty=“FOO”;
var expenseArray=[];
expenseArray[0]={属性:[“FOO”、“BAR”、“WEE”]};
expenseArray[1]={属性:[“NoFOO”、“BAR”、“WEE”]};
var expenseSelect=expenseArray.filter(函数(obj){
返回obj.property.some(函数(元素、索引、数组){
返回元素==myProperty;
});
});
console.log(expenseSelect)代码>使用该方法测试数组中是否至少有一个元素通过了所提供函数实现的测试,它可以是一个简单的选项
var myProperty=“FOO”;
var expenseArray=[];
expenseArray[0]={属性:[“FOO”、“BAR”、“WEE”]};
expenseArray[1]={属性:[“NoFOO”、“BAR”、“WEE”]};
var expenseSelect=expenseArray.filter(函数(obj){
返回obj.property.some(函数(元素、索引、数组){
返回元素==myProperty;
});
});
console.log(expenseSelect)代码>递归?没有基于内容比较数组(或对象)的内在机制,所以是的,这取决于您以某种方式实现比较。如果我理解正确,不确定,但这不应该起作用:expenseArray.filter((obj)=>obj.property.includes(myProperty))
?expenseArray.filter(obj=>obj.property.includes(myProperty)))
obj.property
是一个值数组…?!递归?没有基于内容比较数组(或对象)的内在机制,所以是的,这取决于您以某种方式实现比较。如果我理解正确,不确定,但这不应该起作用:expenseArray.filter((obj)=>obj.property.includes(myProperty))
?expenseArray.filter(obj=>obj.property.includes(myProperty)))
obj.property
是一个值数组…?!真是不可思议,竟然成功了!非常优雅和简单,喜欢它!!真是不可思议,竟然成功了!非常优雅和简单,喜欢它!!