如何在拥有键的同时检查javascript对象是否包含任何值

时间:2018-06-22 16:47:09

标签: javascript

我有一个包含错误消息的javascript对象:

err: {
  subject: '',
  body: '',
  recipient: ''
},

我想根据是否存在错误来禁用提交按钮。在上面的声明中,没有错误。

我知道Object.values(err),但我不知道如何使用结果列表,该列表的长度为3。

我该怎么做?谢谢

6 个答案:

答案 0 :(得分:3)

您可以在Array.some()上使用Object.values()来检查是否有错误消息

let obj = {
  err: {
    subject: '',
    body: '',
    recipient: ''
  }
};

let someErrors = Object.values(obj.err).some(e => e.length);
console.log(someErrors);

答案 1 :(得分:1)

  

const obj = {name:“ Naimur”,age:21}

     

console.log(obj中的“名称”)=> true

     

console.log(obj中的“ age”)=>是

     

console.log(obj中的“位置”)=> false

答案 2 :(得分:0)

也许是这样的:

var data={
  err: {
    subject: '',
    body: '',
    recipient: ''
  },
};

if(data.err.subject!='' || data.err.body!='' || data.err.recipient!=''){
	console.log('ERROR!');
}else{
	console.log('ALL RIGHT!');
}

答案 3 :(得分:0)

var err =  {
  subject: 'some error',
  body: 'message',
  recipient: 'Tom'
};

Object.values(err)将返回一个数组Array ["some error", 'message', 'Tom']。现在,您可以检查此数组的值,然后在这些值满足某些条件时禁用按钮。

希望有帮助。

答案 4 :(得分:0)

我假设所有元素都必须等于”,以产生有效的错误。因此,您可以使用.every()方法检查返回数组中的每个元素。如果只有某些元素必须等于”才能出现错误消息,请改为使用用户.some()

let err = {
  subject: '',
  body: '',
  recipient: ''
}

console.log(!Object.values(err).every(e => e === '')) //returns false meaning there isn't an error message

答案 5 :(得分:0)

您可以使用.reduce()返回错误总和,并检查此代码中err是否具有值

if( (Object.values(err).length) ? Object.values(err).reduce((ac, next) => ac + next.length, 0) :false ){
  console.log( 'there is errors' );   
}