Javascript ES6 rest参数参数示例

Javascript ES6 rest参数参数示例,javascript,arrays,Javascript,Arrays,我不太理解下面的JavaScript示例 function containsAll(arr) { for (let k = 1; k < arguments.length; k++) { let num = arguments[k]; if (arr.indexOf(num) === -1) { return false; } } return true; } let x = [2, 4, 6, 7]; console.log(contain

我不太理解下面的JavaScript示例

function containsAll(arr) {
  for (let k = 1; k < arguments.length; k++) {
    let num = arguments[k];
    if (arr.indexOf(num) === -1) {
      return false;
    }
  }
  return true;
}
let x = [2, 4, 6, 7];
console.log(containsAll(x, 2, 4, 7));
console.log(containsAll(x, 6, 4, 9));
函数包含所有(arr){
for(设k=1;k
控制台中的输出为
1
0

我正试图设想它应该如何工作

  • 在此console.log(containsAll(x,2,4,7))中,应替换
    x
    ,将其更改为console.log(containsAll(2,4,6,7,2,4,7))
  • 函数包含所有
    获取这些数字(2、4、6、7、2、4、7)
  • 在这一行中,
    for(k=1;k
    k
    应该是一个新数组[1,2,3,4,5,6],参数长度是arr的长度(在本例中,7是长度),对吗

  • 在下一步中,即
    let num=arguments[k];如果(arr.indexOf(num)==-1){return false;}
    让num
    应该是
    num=1
    ,对吗

  • 然后,在if语句中,它测试
    1
    是否在数组中,arr=[2,4,6,7,2,4,7]。如果没有找到匹配项,则返回false。它应该对
    arr
    数组中的下一个数字重复,对吗

  • 我只是想弄清楚为什么它为
    console.log(containsAll(x,2,4,7))输出
    1
    当它应该返回类似于
    [false,true,false,true,false,true]
    的内容时

  • 在此console.log(containsAll(x,2,4,7))中,应替换
    x
    ,将其更改为console.log(containsAll(2,4,6,7,2,4, 7) )
  • 不,它保持在
    [2,4,6,7],2,4,7

  • 函数包含所有
    获取这些数字(2、4、6、7、2、4、7)
  • 它得到
    [2,4,6,7],2,4,7

  • 在这一行中,
    for(让k=1;k
    k
    应该是一个新数组[1,2,3,4,5,6],具有参数长度 哪一个是arr的长度(在本例中,7是长度),对吗
  • k
    只是表示
    参数中的索引的数字,而不是数组。
    长度仅为4,数组仅为一个元素

  • 在下一步中,即
    let num=arguments[k];如果(arr.indexOf(num)==-1){return false;}
    让num
    应该是
    num=1
    ,对吗
  • num
    迭代
    参数的剩余元素(
    2,4,7
    )。请注意for循环中的
    k=1
    ,以跳过第一个元素

  • 然后,在if语句中,它测试
    1
    是否在数组中,arr=[2,4,6,7,2,4,7]。如果没有找到匹配项,则返回false。及 它应该对
    arr
    数组中的下一个数字重复,对吗
  • 如果找到第一个匹配项,它将返回

    我只是想弄明白为什么它会输出
    1
    console.log(包含所有(x,2,4,7))它应该何时返回
    类似于
    [假,真,假,真,假,真]

    调用
    return
    时,方法内部的执行停止

    First, your code currently outputs `true` and `false` not 1 and 0.
    The reason you don't have an array like this,[false, true, false, true, false, true], is because of the `return` keyword used in the conditional `if` statement inside your `for` loop.
    
  • 在此console.log(containsAll(x,2,4,7))中,应替换
    x
    ,将其更改为console.log(containsAll(2,4,6,7,2,4, 7) )
  • 不,它保持在
    [2,4,6,7],2,4,7

  • 函数包含所有
    获取这些数字(2、4、6、7、2、4、7)
  • 它得到
    [2,4,6,7],2,4,7

  • 在这一行中,
    for(让k=1;k
    k
    应该是一个新数组[1,2,3,4,5,6],具有参数长度 哪一个是arr的长度(在本例中,7是长度),对吗
  • k
    只是表示
    参数中的索引的数字,而不是数组。
    长度仅为4,数组仅为一个元素

  • 在下一步中,即
    let num=arguments[k];如果(arr.indexOf(num)==-1){return false;}
    让num
    应该是
    num=1
    ,对吗
  • num
    迭代
    参数的剩余元素(
    2,4,7
    )。请注意for循环中的
    k=1
    ,以跳过第一个元素

  • 然后,在if语句中,它测试
    1
    是否在数组中,arr=[2,4,6,7,2,4,7]。如果没有找到匹配项,则返回false。及 它应该对
    arr
    数组中的下一个数字重复,对吗
  • 如果找到第一个匹配项,它将返回

    我只是想弄明白为什么它会输出
    1
    console.log(包含所有(x,2,4,7))它应该何时返回
    类似于
    [假,真,假,真,假,真]

    调用
    return
    时,方法内部的执行停止

    First, your code currently outputs `true` and `false` not 1 and 0.
    The reason you don't have an array like this,[false, true, false, true, false, true], is because of the `return` keyword used in the conditional `if` statement inside your `for` loop.
    
    下面的代码是一种方法

    function containsAll(arr) {
      let result = []
      for (let k = 1; k < arguments.length; k++) {
        let num = arguments[k];
        if (arr.indexOf(num) === -1) {
          result.push(false);
        } else{
            result.push(true);
        }
      }
        return result;
    }
    let x = [2, 4, 6, 7];
    console.log(containsAll(x, 2, 4, 7)); //Output [true, true, true]
    console.log(containsAll(x, 6, 4, 9)); //Output [true, true, false]
    
    函数包含所有(arr){
    让结果=[]
    for(设k=1;k
    下面的代码是一种方法

    function containsAll(arr) {
      let result = []
      for (let k = 1; k < arguments.length; k++) {
        let num = arguments[k];
        if (arr.indexOf(num) === -1) {
          result.push(false);
        } else{
            result.push(true);
        }
      }
        return result;
    }
    let x = [2, 4, 6, 7];
    console.log(containsAll(x, 2, 4, 7)); //Output [true, true, true]
    console.log(containsAll(x, 6, 4, 9)); //Output [true, true, false]
    
    函数包含所有(arr){
    让结果=[]
    for(设k=1;k