javascript - every 方法在 javascript 中不起作用

标签 javascript arrays

首先,.includes 方法不适用于我的框架,所以我在这里省略它。 我有 checkIn(el,ar) 函数来检查 ar 中是否有 el,如下所示:

function checkIn(el){
var check = false;
   for (i = 0; i < ar.length; i++){
     if(el === ar[i]){
     check = true;
     break;
   };
  };
 return check;
 };

工作正常。然后我想使用 .every 方法来检查给定数组的每个元素是否在另一个给定数组中

var x = [1,2,3];
var y = [1,2,3,4,5];
var check = x.every(checkIn(y))

check 需要为 true,但它不起作用?

最佳答案

.every 接受回调,其第一个参数是正在迭代的数组的元素。如果您希望能够使用

x.every(checkIn(y))

然后checkIn应该返回一个可以用作回调的函数:

function checkIn(containingArr) {
  return item => containingArr.includes(item);
};

var x = [1, 2, 3];
var y = [1, 2, 3, 4, 5];
console.log(x.every(checkIn(y))); // every item in x is in y; true
console.log([0].every(checkIn(y))); // 0 is not in y; false

或者,使用类似于 for 循环的内容:

function checkIn(ar) {
  return el => {
    var check = false;
    for (i = 0; i < ar.length; i++) {
      if (el === ar[i]) {
        check = true;
        break;
      };
    };
    return check;
  };
}

var x = [1, 2, 3];
var y = [1, 2, 3, 4, 5];
console.log(x.every(checkIn(y)));
console.log([0].every(checkIn(y)));

关于javascript - every 方法在 javascript 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53679218/

相关文章:

javascript - 使用 jQuery 3.X.X 加载元素上的 Fire 函数

javascript - 我可以在 sendgrid 上使用 Javascript 吗?

javascript - 计算对象属性的重复数组以生成新数组

python - 在这种情况下,内存分配在 python 中是如何工作的?

javascript - 如何将单元格中的数字限制为 x 个小数点?

javascript - 如何使用 angular cli 默认试运行

javascript - 如何在 PHP echo 中正确编写这个 JS 脚本?

c++ - 使用 std::vector,为什么 &vec[0] 是未定义的行为,但 vec.data() 是安全的?

python - 将 PIL 图像转换为 skimage?

arrays - Fortran 中的深数组复制