Javascript ES6 rest参数参数示例
我不太理解下面的JavaScript示例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
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
我正试图设想它应该如何工作
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
,对吗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