我是UI新手。我知道如何做这个c#。我的代码中有一个名为CarValues的字典,其中包含以下数据:
dictionary: CarValues
key ==> string
Value ==> Array
1. key => Honda,
Value => white, yellow
2. Key => Volkswagen
Value => 123, 456
3. key => Mercedes
Value => E, A, B
我还有一个包含以下对象的数组
汽车对象:
Cars = [
{
Toyota: White
Mercedes: B
Honda: Red
Volkswagen: 456
},
{
Toyota: Green
Mercedes: Z
Honda: Blue
Volkswagen: 234
},
{
Toyota: Black
Mercedes: A
Honda: Yellow
Volkswagen: 789
},
{
Toyota: White
Mercedes: B
Honda: Red
Volkswagen: 456
},
{
Toyota: Green
Mercedes: Z
Honda: Blue
Volkswagen: 234
},
{
Toyota: Grey
Mercedes: M
Honda: Orange
Volkswagen: 394
}
.............
.............
]
我想过滤掉与汽车价值相匹配的汽车中的物品。 迭代汽车键,查看汽车价值中是否存在值。
The output should be something like below:
{
Toyota: White
Mercedes: B
Honda: Red
Volkswagen: 456
},
{
Toyota: Black
Mercedes: A
Honda: Yellow
Volkswagen: 789
}
我正在做类似
的事情 var copyCars= [];
Object.entries(this.state.carValues).forEach(function (key) {
Object.entries(this.state.carValues[key]).forEach(function (value) {
var filterData = this.state.cars.filter(x => x[key] == value);
copyCars.push(filterData);
})
});
但是我现在在这条线上遇到错误,说这是未定义的。 var filterData = this.state.cars.filter(x => x [key] == value);
答案 0 :(得分:0)
目前尚不清楚您希望如何过滤阵列。但我认为您可以使用Array.filter
功能。 MSDN (Array.filter)
示例:
/* let's assume, that you want to filter cars with 'Volkswagen' value to be in [456, 789];*/
const volkswagenIds = [456, 789];
let filteredCars = Cars.filter(car => {
return volkswagenIds.indexOf(car.Volkswagen) !== -1;
});