Javascript 如何知道数组是否包含具有特定';键';?
假设我有一个数据结构,其中我有一个数组,其中包含一组对象,对象是“月”Javascript 如何知道数组是否包含具有特定';键';?,javascript,loops,javascript-objects,Javascript,Loops,Javascript Objects,假设我有一个数据结构,其中我有一个数组,其中包含一组对象,对象是“月” monthlySum: [ { jun2018: { sales: 0, expenses: 0 } }, { aug2018: { sales: 0, expe
monthlySum: [
{
jun2018: {
sales: 0,
expenses: 0
}
},
{
aug2018: {
sales: 0,
expenses: 0
}
}
]
现在我想知道,比方说,这个数组中是否已经存在键为'sep2018'的对象。如果还没有,那么我将在最后一个对象之后添加一个带有“sep2018”键的新对象。如果是的话,我什么也不做
我该怎么做呢
您可以使用
.some
检查数组中的任何内容是否通过特定测试:
const monthlySum=[{
2018年6月:{
销售额:0,
费用:0
}
},
{
2018年8月:{
销售额:0,
费用:0
}
}
];
如果(!monthlySum.some((obj)=>obj中的“2018年8月”){
月推({
2018年8月:{
销售额:0,
费用:0
}
})
}
如果(!monthlySum.some((obj)=>obj中的“2018年9月”){
月推({
2018年9月:{
销售额:0,
费用:0
}
})
}
控制台日志(每月)
您可以使用.some
检查数组中的任何内容是否通过特定测试:
const monthlySum=[{
2018年6月:{
销售额:0,
费用:0
}
},
{
2018年8月:{
销售额:0,
费用:0
}
}
];
如果(!monthlySum.some((obj)=>obj中的“2018年8月”){
月推({
2018年8月:{
销售额:0,
费用:0
}
})
}
如果(!monthlySum.some((obj)=>obj中的“2018年9月”){
月推({
2018年9月:{
销售额:0,
费用:0
}
})
}
控制台日志(每月)代码>对于更新或检查,您可以使用,如果未找到,则返回项目或未定义的
函数查找(数组、键){
返回array.find(object=>key-in-object);
}
var monthlySum=[{2018年6月:{销售:0,费用:0}},{2018年8月:{销售:0,费用:0}];
console.log(查找(monthlySum,'2018年8月');
console.log(查找(monthlySum,'dec2018')代码>对于更新或检查,您可以使用,如果未找到,则返回项目或未定义的
函数查找(数组、键){
返回array.find(object=>key-in-object);
}
var monthlySum=[{2018年6月:{销售:0,费用:0}},{2018年8月:{销售:0,费用:0}];
console.log(查找(monthlySum,'2018年8月');
console.log(查找(monthlySum,'dec2018')代码>也许你会考虑使用一个不同的数据串,比如一个对象,而不是一个数组,因为你已经用正确的关键字分组了。@ Niasrrz是的,我也在考虑…也许你考虑使用一个不同的数据串,比如一个对象,而不是数组,因为您已经按适当的键分组了。@NinaScholz是的,我也在考虑。。