我使用map循环但它返回了一个数组,不确定我应该使用像forEach这样的东西。我有这个初始对象。
data.discounts: [{
days: 3,
is_enable: true
},{
days: 10,
is_enable: false
}]
然后我检查is_enable
const newObj = {
"disableDiscount_3": !isEmpty(data.discounts) ? (data.discounts.map(obj => obj.days === 3 && obj.is_enable === true ? true : false)) : ''
}
然后它变成了
newObj.disableDiscount_3 = [{
true,
false,
false,
false
}]
我想要的实际上只是真或假:newObj.disableDiscount_3 = true
我该怎么办?
答案 0 :(得分:2)
map()
方法并不适用于此,而是可以使用some()
检查指定的对象是否存在并返回true/false
。
var discounts = [{
days: 3,
is_enable: true
}, {
days: 10,
is_enable: false
}]
var check = discounts.some(e => e.days == 3 && e.is_enable === true);
console.log(check)

要首先找到特定对象,您可以使用find()
方法,如果找到该对象,则可以使用某些属性。
var data = {
discounts: [{
days: 3,
is_enable: true,
value: 123
}, {
days: 10,
is_enable: false
}]
}
var obj = {
"discount_3": (function() {
var check = data.discounts.find(e => e.days == 3 && e.is_enable === true)
return check ? check.value : ''
})()
}
console.log(obj)