var arrays = ['stew', 'rice', 'Beans', 'yam', 'plantain', 'potatoe',
'margarine', 'barbeque', 'semovota', 'bournvita'
];
var arr3 = arrays.lastIndexOf('stew');
console.log(arr3);
indexOf和lastIdexOf在两种情况下都给出了相同的东西0,当lastIndexOf从后面计数时如何。正确答案似乎是9
答案 0 :(得分:6)
这是因为从开始或向后,"stew"
位于0的相同位置。
lastIndexOf()方法返回在数组中可以找到给定元素的最后一个索引,如果不存在则返回-1。向后搜索数组,从fromIndex开始。
当你在中间或结尾有另一个“炖菜”时,你会看到真正的区别。
var arrays = ['stew','rice','Beans','yam','plantain','potatoe',
'margarine','barbeque','semovota','bournvita','stew'];
var arr3 = arrays.lastIndexOf('stew');
console.log(arr3); // 10
答案 1 :(得分:3)
lastIndex
无法从后面开始计算。它从最后一个匹配项的开头返回索引。
答案 2 :(得分:3)
lastIndexOf()不会从后面开始计算,它只是为您提供搜索的最后一个重复项目的索引。如果你把'stew'再次放在0之前的某个数组中,它会给你它的索引,而indexOf会给你第一个索引。
示例:
const array = ['stew','rice','Beans','yam','plantain', 'stew','potatoe','margarine','barbeque','semovota','bournvita'];
let regularIndex = array.indexOf('stew');
let lastIndex = array.lastIndexOf('stew');
console.log(regularIndex);
console.log(lastIndex);
// console prints:
// 0
// 5
答案 3 :(得分:1)
“indexOf” - >第一个元素的位置是什么。
“lastIndexOf - >最后一个元素是什么。
如果你想要从后到前的位置,请看下面的内容:
var listagem = ['stew', 'rice', 'semovota', 'stew', 'bournvita'];
var postFirstIndex = listagem.indexOf('stew');
var postLastIndex = listagem.lastIndexOf('stew');
var postLastIndexInverted = listagem.length - listagem.lastIndexOf('stew') - 1;
alert(postFirstIndex);
alert(postLastIndex);
alert(postLastIndexInverted);
答案 4 :(得分:0)
lastIndexOf为您提供起始索引,但从右侧开始计算数组内的最后一次出现。 在这里有单一的出现,所以它给0,但当你输入多个出现时,你会看到差异: -
var arrays = ['stew','rice','Beans','yam','plantain','potatoe',
'margarine','barbeque','semovota','stew','bournvita'];
var arr3 = arrays.lastIndexOf('stew');
console.log(arr3); // will give you 9
var arr3 = arrays.lastIndexOf('margarine');
console.log(arr3); // will give you 6
现在它给你9.因为炖2次
答案 5 :(得分:0)
只有一个值“stew”在你的数组中,位于索引0处。这是“stew”的第一个和最后一个索引,因此这就是indexOf和lastIndexOf都返回0的原因。
向数组变量添加第二个“stew”值,然后观察日志的输出。
此外,lastIndexOf不会从最后一个索引开始计数,它与搜索函数的方向没有区别,因为它必须遍历N个元素,其中N是给定数组的长度。
以下示例
var source = ["foo", "bar", "foo"];
console.log(source.indexOf("foo"));
//Above will log 0.
console.log(source.lastIndexOf("foo"));
//Above will log 2
console.log(source.lastIndexOf("bar"));
//Above will log 1
console.log(source.lastIndexOf("bar") === source.indexOf("bar"));
//Above will log true, as "bar" occurs only once in the array,
//just like "stew" in your question.
console.log(source.indexOf("cheese"));
//Above will log -1, just for fun ha ha
希望有所帮助。
答案 6 :(得分:0)
lastIndexOf() 不从后面开始计数,它只是为您提供搜索的最后一个重复项的索引。如果您再次将 'stew' 放入数组中 0 索引之后的某个位置,它将为您提供其索引,而 indexOf 将提供第一个索引。
"indexOf" -> 炖元素第一次出现的位置是什么。
"lastIndexOf -> 炖菜元素最后一次出现的位置是什么。
如果数组是这样的 -> var arrays = ['stew', 'rice', 'Beans', 'yam', 'plantain', 'potatoe','margarine', 'barbeque', 'semovota', 'bournvita', '炖'];
arrays.lastIndexOf('stew') 将返回 10