Javascript 检查对象的所有值,只有一个除外

Javascript 检查对象的所有值,只有一个除外,javascript,jquery,arrays,json,javascript-objects,Javascript,Jquery,Arrays,Json,Javascript Objects,我有一个JavaScript。这个对象看起来像 {date: "2019-10-03", hello: 0, yo: 0, test: 0} 我是否可以检查对象中除日期外的所有值是否为==0 我不确定如何对其进行编码。使用提取日期和其他属性,并使用以下方法计算属性的总和: const obj={date:“2019-10-03”,hello:0,yo:0,test:0}; const{date,…rest}=obj; const sum=Object.values(rest).reduce(

我有一个JavaScript。这个对象看起来像

{date: "2019-10-03", hello: 0, yo: 0, test: 0}
我是否可以检查对象中除日期外的所有值是否为
==0

我不确定如何对其进行编码。

使用提取日期和其他属性,并使用以下方法计算属性的总和:

const obj={date:“2019-10-03”,hello:0,yo:0,test:0};
const{date,…rest}=obj;
const sum=Object.values(rest).reduce((和,curr)=>sum+curr,0);
常数allZeros=sum==0?真:假;
console.log(全零)用于提取日期和其他属性,并使用以下方法计算属性的总和:

const obj={date:“2019-10-03”,hello:0,yo:0,test:0};
const{date,…rest}=obj;
const sum=Object.values(rest).reduce((和,curr)=>sum+curr,0);
常数allZeros=sum==0?真:假;

console.log(全零)您可以在属性上执行循环:

let obj = {date: "2019-10-03", hello: 0, yo: 0, test: 0}
let isAllZero = true
for (const key in obj) {
    if (obj.hasOwnProperty(key) && key !== 'date' && obj[key] !== 0) {
        isAllZero = false
    }
}

可以在属性上执行循环:

let obj = {date: "2019-10-03", hello: 0, yo: 0, test: 0}
let isAllZero = true
for (const key in obj) {
    if (obj.hasOwnProperty(key) && key !== 'date' && obj[key] !== 0) {
        isAllZero = false
    }
}
我们可以使用
object.keys(someObj)
遍历对象的键,并检查键是否等于日期。我们也可以在同一个循环中执行值检查


我们可以使用
object.keys(someObj)
遍历对象的键,并检查键是否等于日期。我们也可以在同一个循环中执行值检查。

我想您正在寻找一个带有if语句的:

var obj={date:“2019-10-03”,hello:0,yo:0,test:0};
用于(obj中的var prop){
如果((道具!=='date')&&(obj[prop]==0)){
日志(“检查零传递和非日期”);
}

}
我想您正在寻找一个带有if语句的:

var obj={date:“2019-10-03”,hello:0,yo:0,test:0};
用于(obj中的var prop){
如果((道具!=='date')&&(obj[prop]==0)){
日志(“检查零传递和非日期”);
}

}
以下是另一种与以下各项结合使用的替代方案:

const allZeroExceptDate=o=>
Object.entries(o).every([k,v])=>k==“date”| | v==0);
console.log(allZeroExceptDate(
{日期:“2019-10-03”,您好:0,您:0,测试:0}
));
console.log(allZeroExceptDate(
{你好:0,你:0,测试:0}
));
console.log(allZeroExceptDate(
{日期:“某个日期”,你好:0,你:0,测试:33}
));
.as控制台{背景色:黑色!重要;颜色:石灰;}

.作为控制台包装{max height:100%!important;top:0;}
这里是另一个与以下组合使用的替代方法:

const allZeroExceptDate=o=>
Object.entries(o).every([k,v])=>k==“date”| | v==0);
console.log(allZeroExceptDate(
{日期:“2019-10-03”,您好:0,您:0,测试:0}
));
console.log(allZeroExceptDate(
{你好:0,你:0,测试:0}
));
console.log(allZeroExceptDate(
{日期:“某个日期”,你好:0,你:0,测试:33}
));
.as控制台{背景色:黑色!重要;颜色:石灰;}

.作为控制台包装器{max height:100%!important;top:0;}
我认为这是最简单的答案,您可以简单地将对象键和值分开,然后在中选中“not date”和“等于0”

let main_obj={date:“2019-10-03”,hello:0,yo:0,test:0};
设obj_keys=Object.keys(main_obj);
让obj_值=Object.values(main_obj);

对于(i=1;i这里是我认为最简单的答案,您可以简单地分离对象键和值,然后在中选中“notdate”和“等于0”

let main_obj={date:“2019-10-03”,hello:0,yo:0,test:0};
设obj_keys=Object.keys(main_obj);
让obj_值=Object.values(main_obj);

对于(i=1;i我将使用
.every(n=>n==0)
而不是使用
reduce
对所有值进行求和,然后检查求和是否为
0
。还有
sum==0?true:false
是一种蚂蚁模式,可以是
sum==0
@3limin4t0r是的,这样更好,我在你发表评论时就考虑到了。@Taki,我们可以对json也这样做吗对象。json只有一个对象“[{date:“2019-10-03”,hello:0,yo:0,test:0}]@noob,这是一个数组,您需要将上述内容应用于每个元素,比如
const{…}=obj[0]
,或者在loop@Taki,你能举个例子吗?对不起,我真的是个笨蛋。我会用
。every(n=>n==0)
而不是使用
reduce
对所有值进行求和,然后检查求和是否为
0
。还有
sum==0?true:false
是一种蚂蚁模式,可以是
sum==0
@3limin4t0r是的,这样更好,我在你发表评论时就考虑到了。@Taki,我们可以对json也这样做吗对象。json只有一个对象“[{date:“2019-10-03”,hello:0,yo:0,test:0}]@noob,这是一个数组,您需要将上述内容应用于每个元素,比如
const{…}=obj[0]
,或者在loop@Taki,你能举个例子吗?对不起,我在这方面真的很在行
let main_obj = {date: "2019-10-03", hello: 0, yo: 0, test: 0};

let obj_keys = Object.keys(main_obj);

let obj_values = Object.values(main_obj);

for(i = 1; i <= obj_keys.length; i++) {
    if(obj_keys[i] != 'date' && obj_values[i] == 0) {
        console.log('Found Zero Number ' + i);
    }
}