Javascript 如何一次筛选多个对象属性?
我在react中有2个状态对象-1是我的总体数据对象状态,另一个是从更改的无线电/复选框控制的过滤器数据Javascript 如何一次筛选多个对象属性?,javascript,reactjs,react-hooks,Javascript,Reactjs,React Hooks,我在react中有2个状态对象-1是我的总体数据对象状态,另一个是从更改的无线电/复选框控制的过滤器数据 { color: "blue" shape: "square" } 如果用户要选择color:blue和shape:square,我如何对其进行过滤以确保只返回数据集中包含这些值的结果 我下面的代码只适用于一种对象类型。它可以正确过滤颜色:蓝色,但当选择形状:方形时,数据仅过滤方形 function compareState(checkbo
{
color: "blue"
shape: "square"
}
如果用户要选择color:blue和shape:square,我如何对其进行过滤以确保只返回数据集中包含这些值的结果
我下面的代码只适用于一种对象类型。它可以正确过滤颜色:蓝色,但当选择形状:方形时,数据仅过滤方形
function compareState(checkboxData, dataset) {
let data = ''
let selectedItems = [];
console.log(checkboxData)
if (checkboxData.hasOwnProperty('Compatible_with')) {
Object.entries(checkboxData).map(check => {
let key = check[0];
let val = check[1];
if (dataset[key][val] !== '') {
data = dataset['name']
} else {
data = false
}
})
}
我想我的问题是,如何确保满足两个(所有)标准来过滤我的数据?因为我在一个循环中,它无法被检索…如果你对你的问题进行逻辑思考,答案是可以得到的:“确保两个(所有)标准都得到满足”-这意味着
color
和shape
。换言之,color=='blue'&&shape=='square'
对不起,我认为我的问题措辞不太好。我了解这一点,但如果我在对象.entries(checkboxData)循环中循环数据
-此条件-如果(数据集[key][val]!='')
-不能用于多个项目,我的评论也同样有缺陷:应该清楚的是,如果您想一次评估多个属性=>复选框
配对,您不能通过一次迭代一个复选框来完成。好吧-这是一个公平的解决方案。使用减少而不是映射
并跟踪匹配项。reduce
的单个结果可能是一个已检查属性的数组。