[英]How to Filter an Array of Object and check if Specific key has a value in an Array
[英]AngularJS - How to check that a specific key has a specific value in an array
在Angular中,我有一個像這樣的數組:
$scope.colors =["blue","red","pink","yellow"];
還有另一個對象
$scope.cars=[{"brand":"Ford","color":"blue"},{"brand":"Ferrari","color":"red"},{"brand":"Rolls","color":"blue"}];
我想做過濾器,這樣
<ul>
<li ng-repeat="n in colors | filter:colorFilter">
</li>
</ul>
在NG-重復只會顯示在元素$scope.colors
,由於價值觀的存在$scope.cars
換句話說,它只會顯示藍色和紅色
提前致謝!
您可以使用map
方法,該方法接受回調函數作為參數,以便從$scope.cars
每個汽車項目中獲取所有顏色,然后使用Set
構造函數以查找unique
顏色。 然后,您必須使用filter
功能。
然后,您必須使用filter
功能。
let colors =["blue","red","pink","yellow"]; let cars = [{"brand":"Ford","color":"blue"},{"brand":"Ferrari","color":"red"},{"brand":"Rolls","color":"blue"}]; let uniqueColours= [...new Set(cars.map(c => c.color))]; const filteredColors = colors.filter(a=>uniqueColours.includes(a)); console.log(filteredColors);
您可以單行執行此操作:
const colors =["blue","red","pink","yellow"],cars = [{"brand":"Ford","color":"blue"},{"brand":"Ferrari","color":"red"},{"brand":"Rolls","color":"blue"}], filteredColors = colors.filter(a => cars.map(a => a.color).includes(a)); console.log(filteredColors);
沒有箭頭功能。
const colors =["blue","red","pink","yellow"],cars = [{"brand":"Ford","color":"blue"},{"brand":"Ferrari","color":"red"},{"brand":"Rolls","color":"blue"}], filteredColors = colors.filter(function(a){ return cars.map(function(c){ return c.color; }).includes(a)}); console.log(filteredColors);
給定顏色和汽車陣列,您可以通過以下方式過濾顏色 :
var colors =["blue","red","pink","yellow"]; var cars=[ {"brand":"Ford","color":"blue"},{"brand":"Ferrari","color":"red"},{"brand":"Rolls","color":"blue"}]; var filteredColors = colors.filter(color => cars.some(car => car.color === color)); console.log(filteredColors);
如果您不能使用ES6,則應為:
var colors =["blue","red","pink","yellow"]; var cars=[ {"brand":"Ford","color":"blue"},{"brand":"Ferrari","color":"red"},{"brand":"Rolls","color":"blue"}]; var filteredColors = colors.filter(function(color) { return cars.some(function(car) { return car.color === color; }); }); console.log(filteredColors);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.