-4,5,6,7-]; 销= 3;
我们要搜索干草。
传统上我们遍历hay并检查pin(假设没有名为array.indexOf的本机函数)。
怎么样,
hay=hay.join(",");
pin=","+pin+",";
index=hay.indexOf(pin);
有什么建议吗?
答案 0 :(得分:1)
考虑[2,3,4]的干草和2的引脚......你将在字符串“2,3,4”中寻找“,2”。现在你可以在hay
的开头和结尾添加逗号,但它有点难看,不是吗?
然后存在具有可变长度的字符串的问题:考虑[1,222222,3,4]的数组。当你寻找3时,由于长度为“222222”,你最终会得到一个不合适的索引。 (即使只有单个数字值,你也需要除以3。)
当你开始从整数移动到十进制值时,你可能会遇到问题,这些值可能在不同的文化中有不同的格式 - 可能使用逗号作为小数分隔符。我不知道JavaScript默认情况下是否使用特定于文化的分隔符,但这是问题的一部分 - 您突然不得不考虑与手头任务无关的语言/平台方面。
一般来说,将数据转换为字符串格式以便执行真正依赖于字符串格式的操作是一个坏主意。最好编写一个通用的indexOf
方法来为您执行循环。 (如果这种方法不存在,我会感到惊讶,说实话,但如果你需要的话,写一次并重复使用就很容易了。)
答案 1 :(得分:1)
哎呀,假设没有字符串indexOf。
var A=[11,7,9,1,17,13,19,18,10,6,3,8,2,5,4,14,20,15,16,12],
L=A.length, n=3;
while(L>-1 && A[--L]!==n);
alert(L)
答案 2 :(得分:0)
如果我理解你的问题,你不需要在中间使用字符串,只需循环遍历数组。
var hay = [1, 2, 3, 'Whoa', 'wheee', 5, 'needle'], needle = 'needle';
for ( var i = 0, len = hay.length; i < len; i += 1 ) {
if ( hay[ i ] === needle ) {
alert( "hay’s element number " + i + " is the needle!" );
break;
}
}