有点混淆这个 javascript 语法 --> arr.indexOf(searchElement[ fromIndex])
A little bit confused with this javascript syntax --> arr.indexOf(searchElement[, fromIndex])
const beasts = ['ant', 'bison', 'camel', 'duck', 'bison'];
console.log(beasts.indexOf('bison'));
// expected output: 1
// start from index 2
console.log(beasts.indexOf('bison', 2));
// expected output: 4
console.log(beasts.indexOf('giraffe'));
// expected output: -1
我一直在反复看这个js语法。我从 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf 那里得到了这段代码
它说 fromIndex 参数是开始搜索的索引。现在,从上面的代码中,我对 fromIndex 参数的计数是如何发生的感到困惑。来自代码就行:
// start from index 2
console.log(beasts.indexOf('bison', 2));
// expected output: 4
Camel 是索引为 2 的项目。计数如何恰好到达预期输出 4?
当我尝试更改第二个参数时,
// start from index 3
console.log(beasts.indexOf('bison', 3));
Duck 是索引为 3 的项目。但是 indexOf('bison', 3) 的输出仍然是 4。
计数是如何发生的?
这里什么都不计算,它只是输出元素所在的索引。
如果您输入 console.log(beasts.indexOf('bison', 3));
,那么您会从索引 3 开始搜索。您仍然会得到 4,因为 bison
位于索引 4。甚至名称 indexOf
也表明您接收索引。
数组保持不变,只是起点移动到索引 3
const beasts = ['ant', 'bison', 'camel', 'duck', 'bison'];
^
|
|
You start here and search to the right for "bison"
很简单。
第一个元素索引为0:
> console.log(beasts[0])
"ant"
如果你传递第二个参数,indexOf
将循环你的数组。
换句话说,如果从你传递的索引到它的末尾都没有找到元素,该命令将从头开始寻找它,继续计数。
这里不是算数的问题。这都是关于元素在基于 zero-index 的数组中的位置。
也许您会感到困惑,因为您为同一个词 (bison
) 获得了两个索引。别担心。不要忘记这个词在数组中重复了两次。即使不使用 indexOf
你也可以看到它在索引 1
和索引 4
.
中
const beasts = ['ant', 'bison', 'camel', 'duck', 'bison'];
console.log(beasts.indexOf('bison'));
// expected output: 1
// start from index 2
console.log(beasts.indexOf('bison', 2));
// expected output: 4
console.log(beasts.indexOf('giraffe'));
// expected output: -1
我一直在反复看这个js语法。我从 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf 那里得到了这段代码 它说 fromIndex 参数是开始搜索的索引。现在,从上面的代码中,我对 fromIndex 参数的计数是如何发生的感到困惑。来自代码就行:
// start from index 2
console.log(beasts.indexOf('bison', 2));
// expected output: 4
Camel 是索引为 2 的项目。计数如何恰好到达预期输出 4?
当我尝试更改第二个参数时,
// start from index 3
console.log(beasts.indexOf('bison', 3));
Duck 是索引为 3 的项目。但是 indexOf('bison', 3) 的输出仍然是 4。
计数是如何发生的?
这里什么都不计算,它只是输出元素所在的索引。
如果您输入 console.log(beasts.indexOf('bison', 3));
,那么您会从索引 3 开始搜索。您仍然会得到 4,因为 bison
位于索引 4。甚至名称 indexOf
也表明您接收索引。
数组保持不变,只是起点移动到索引 3
const beasts = ['ant', 'bison', 'camel', 'duck', 'bison'];
^
|
|
You start here and search to the right for "bison"
很简单。
第一个元素索引为0:
> console.log(beasts[0])
"ant"
如果你传递第二个参数,indexOf
将循环你的数组。
换句话说,如果从你传递的索引到它的末尾都没有找到元素,该命令将从头开始寻找它,继续计数。
这里不是算数的问题。这都是关于元素在基于 zero-index 的数组中的位置。
也许您会感到困惑,因为您为同一个词 (bison
) 获得了两个索引。别担心。不要忘记这个词在数组中重复了两次。即使不使用 indexOf
你也可以看到它在索引 1
和索引 4
.