JS 如何循环if语句条件?

let arr = ['test1','test2']
let obj = { test0:'xxx'}

想通过循环arr,if判断时得到以下结果,即把数组中的元素当做obj的key加到if判断中

if( obj.test0 && obj.test1 && obj.test2){
}

阅读 2.2k
4 个回答
let arr = ['test1','test2']
let obj = { test0:'xxx'}
if( obj.test0 && arr.every(key => obj[key])){
}
// 或者看你业务需求要不要加个arr.length
if( obj.test0 && arr.length && arr.every(key => obj[key])){
}

我的最简单粗暴的思路:

let condition = true;
for (let i = 0; i < arr.length; i++) {
  condition = condition && obj[arr[i]];
}

if (condition) {
  ...
}
新手上路,请多包涵
let arr = ['test1', 'test2']
let obj = { test0: 'xxx'}

// 判断 arr 中的元素,是否全部是 obj 对象中的 key:
{
  const keyInObj = arr.every(key => key in obj);

  if (keyInObj) {
    // 代码块
  }
}

/ *
  * 判断 arr 中的元素,是否全部是 obj 对象中的 key,并且
  * 转换 boolean 后为 true:
/
{
  const keyInObjIsTruthy = arr.every(key => obj[key]);

  if (keyInObjIsTruthy) {
    // 代码块
  }
}
let arr = ['test1', 'test2'];
let obj = { test0: 'xxx' };

if (arr.every(key => obj.hasOwnProperty(key))) {
    // 代码
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题