假设我有这样的数据结构,其中我有一个包含一组对象的数组,对象是'月'。
monthlySum: [
{
jun2018: {
sales: 0,
expenses: 0
}
},
{
aug2018: {
sales: 0,
expenses: 0
}
}
]
现在我想知道,如果一个带有'sep2018'键的对象已存在于此数组中。如果还没有,那么我将在最后一个之后添加一个带有'sep2018'键的新对象。如果是,那么我什么都不做。
我该怎么做?
答案 0 :(得分:1)
您可以使用.some
检查数组中的任何内容是否通过某个测试:
const monthlySum = [{
jun2018: {
sales: 0,
expenses: 0
}
},
{
aug2018: {
sales: 0,
expenses: 0
}
}
];
if (!monthlySum.some((obj) => 'aug2018' in obj)) {
monthlySum.push({
aug2018: {
sales: 0,
expenses: 0
}
})
}
if (!monthlySum.some((obj) => 'sep2018' in obj)) {
monthlySum.push({
sep2018: {
sales: 0,
expenses: 0
}
})
}
console.log(monthlySum);
答案 1 :(得分:1)
要进行更新或检查,您可以使用Array#find
,如果找不到,则会返回该项目或undefined
。
function find(array, key) {
return array.find(object => key in object);
}
var monthlySum = [{ jun2018: { sales: 0, expenses: 0 } }, { aug2018: { sales: 0, expenses: 0 } }];
console.log(find(monthlySum, 'aug2018'));
console.log(find(monthlySum, 'dec2018'));