通过元素的子字符串环回过滤数组中的对象
Loopback filter objects in an array by substring of its element
我有一组对象。我想以这样一种方式对其进行过滤,即它仅 returns 元素值与特定过滤器匹配的对象。就像元素值包含一些字符串一样,该对象将存在于 returning 数组中。
例如,如果我有这样的数组:
[
{ "name":"Ford", "models":[ "Fiesta", "Focus", "Mustang" ] },
{ "name":"BMW", "models":[ "320", "X3", "X5" ] },
{ "name":"Fiat", "models":[ "500", "Panda" ] }
]
我希望它按名称元素过滤,并且仅 return 名称元素中包含 "F" 的对象。喜欢就return只有以下
[
{ "name":"Ford", "models":[ "Fiesta", "Focus", "Mustang" ] },
{ "name":"Fiat", "models":[ "500", "Panda" ] }
]
如何在环回 angular sdk 中执行此操作?
您可以组合方法 Array.prototype.filter() and String.prototype.includes():
const data = [{"name": "Ford","models": ["Fiesta", "Focus", "Mustang"]},{"name": "BMW","models": ["320", "X3", "X5"]},{"name": "Fiat","models": ["500", "Panda"]}];
const filterByStr = 'F';
const result = data.filter(obj => obj.name.includes(filterByStr));
console.log(result);
你可以使用下面的代码,它使用 Array.prototype.filter() and String.prototype.match()
let arr = [
{ "name":"Ford", "models":[ "Fiesta", "Focus", "Mustang" ] },
{ "name":"BMW", "models":[ "320", "X3", "X5" ] },
{ "name":"Fiat", "models":[ "500", "Panda" ] }
]
arr = arr.filter(function(val){
return val && val.name && val.name.match(/F/g);
});
console.log(arr);
您需要做的是 运行 遍历您的数组并检查条件是否得到满足。
希望对您有所帮助。
var arr=[
{ "name":"Ford", "models":[ "Fiesta", "Focus", "Mustang" ] },
{ "name":"BMW", "models":[ "320", "X3", "X5" ] },
{ "name":"Fiat", "models":[ "500", "Panda" ] }
];
document.addEventListener('DOMContentLoaded',function(){
console.log(arr.length);
for(var i=0;i<arr.length;i++){
if(arr[i].name.startsWith("F")){
Object.keys(arr[i]).forEach(function(key){
alert(arr[i][key]);
})
}
}
})
我有一组对象。我想以这样一种方式对其进行过滤,即它仅 returns 元素值与特定过滤器匹配的对象。就像元素值包含一些字符串一样,该对象将存在于 returning 数组中。
例如,如果我有这样的数组:
[
{ "name":"Ford", "models":[ "Fiesta", "Focus", "Mustang" ] },
{ "name":"BMW", "models":[ "320", "X3", "X5" ] },
{ "name":"Fiat", "models":[ "500", "Panda" ] }
]
我希望它按名称元素过滤,并且仅 return 名称元素中包含 "F" 的对象。喜欢就return只有以下
[
{ "name":"Ford", "models":[ "Fiesta", "Focus", "Mustang" ] },
{ "name":"Fiat", "models":[ "500", "Panda" ] }
]
如何在环回 angular sdk 中执行此操作?
您可以组合方法 Array.prototype.filter() and String.prototype.includes():
const data = [{"name": "Ford","models": ["Fiesta", "Focus", "Mustang"]},{"name": "BMW","models": ["320", "X3", "X5"]},{"name": "Fiat","models": ["500", "Panda"]}];
const filterByStr = 'F';
const result = data.filter(obj => obj.name.includes(filterByStr));
console.log(result);
你可以使用下面的代码,它使用 Array.prototype.filter() and String.prototype.match()
let arr = [
{ "name":"Ford", "models":[ "Fiesta", "Focus", "Mustang" ] },
{ "name":"BMW", "models":[ "320", "X3", "X5" ] },
{ "name":"Fiat", "models":[ "500", "Panda" ] }
]
arr = arr.filter(function(val){
return val && val.name && val.name.match(/F/g);
});
console.log(arr);
您需要做的是 运行 遍历您的数组并检查条件是否得到满足。
希望对您有所帮助。
var arr=[
{ "name":"Ford", "models":[ "Fiesta", "Focus", "Mustang" ] },
{ "name":"BMW", "models":[ "320", "X3", "X5" ] },
{ "name":"Fiat", "models":[ "500", "Panda" ] }
];
document.addEventListener('DOMContentLoaded',function(){
console.log(arr.length);
for(var i=0;i<arr.length;i++){
if(arr[i].name.startsWith("F")){
Object.keys(arr[i]).forEach(function(key){
alert(arr[i][key]);
})
}
}
})