我正在尝试根据值过滤数组。 (下面是数组和值)
var value = "blue"; // could be red, blue, green, bold, italic
var array = [{
color: "red",
bold: false,
italic: false
}, {
color: "blue",
bold: false,
italic: false
}, {
color: "green",
bold: true,
italic: false
}, {
color: "green",
bold: false,
italic: true
}];
然后有一个新的数组来存储过滤后的数组
var filtered = [];
然后,我试图找到一种过滤数据的解决方案。我可以做的颜色:
filtered = array.filter(function(obj) {
if (obj.color == "green") {
return obj;
}
});
console.log(filtered);
但是,该值也可以是粗体或斜体。那么,如何有效地比较这些不同的数据类型并有效地过滤数据呢?
最佳答案
如果 color
、bold
和 italic
是您想要过滤的唯一标准,那么简单的方法可能就足够了:
var value = "bold";
var array = [{color:"red",bold:false,italic:false},{color:"blue",bold:false,italic:false},{color:"green",bold:true,italic:false},{color:"green",bold:false,italic:true}];
var filtered = array.filter(function(item) {
return item.color === value ||
(value === 'bold' && item.bold) ||
(value === 'italic' && item.italic);
})
console.log(filtered);
关于javascript - 根据各种属性类型和值过滤数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41107527/