Javascript 带有for循环+;条件删除不必要的元素
我在一个数组中循环,出于某种原因,循环+条件+拼接正在删除不应该删除的索引,并保留其他应该删除的索引,有人能指出我的语法有什么错误吗Javascript 带有for循环+;条件删除不必要的元素,javascript,arrays,Javascript,Arrays,我在一个数组中循环,出于某种原因,循环+条件+拼接正在删除不应该删除的索引,并保留其他应该删除的索引,有人能指出我的语法有什么错误吗 arr2 = ['agg', 45, 'ghj', ' ', 9999, 12, 'aa', 'bb']; function returnAlphanumeric(array){ for (var i=0; i<array.length; i++){ if (typeof array[i] !== "number"){
arr2 = ['agg', 45, 'ghj', ' ', 9999, 12, 'aa', 'bb'];
function returnAlphanumeric(array){
for (var i=0; i<array.length; i++){
if (typeof array[i] !== "number"){
array.splice(i, 1);
}
}
console.log('Your new array is: '+array);
}
returnAlphanumeric(arr2);
arr2=['agg',45,'ghj',''''9999,12,'aa','bb'];
函数返回字母数字(数组){
对于(var i=0;i您能试试这个吗,您将不得不减少计数器,因为拼接将使阵列移位
function returnAlphanumeric(array){
for (var i=0; i<array.length; i++){
if (typeof array[i] !== "number"){
array.splice(i, 1);
i--;
}
}
console.log('Your new array is: '+array);
}
函数返回字母数字(数组){
对于(var i=0;i您能试试这个吗,您将不得不减少计数器,因为拼接将使阵列移位
function returnAlphanumeric(array){
for (var i=0; i<array.length; i++){
if (typeof array[i] !== "number"){
array.splice(i, 1);
i--;
}
}
console.log('Your new array is: '+array);
}
函数返回字母数字(数组){
对于(var i=0;i为什么不使用过滤方法:
arr2 = ['agg', 45, 'ghj', ' ', 9999, 12, 'aa', 'bb'];
arr2.filter(a => typeof a === "number"); // 45, 9999, 12
为什么不使用过滤方法:
arr2 = ['agg', 45, 'ghj', ' ', 9999, 12, 'aa', 'bb'];
arr2.filter(a => typeof a === "number"); // 45, 9999, 12
你能解释一下添加倒计时的逻辑,以及为什么我的函数不起作用吗?你能解释一下添加倒计时的逻辑,以及为什么我的函数不起作用吗?你正在随着循环的进行修改数组,这会弄乱索引。试着使用@Ruhulsuggested@mkaran谢谢,但我能有一个更好更合乎逻辑的解释吗在than“弄乱索引”?:)thx上,当你在i=0时,例如,它不是一个数字(数组[0]是“agg”),你将删除数组[i](数组[0),因此,下一次迭代时,当i将等于1数组[i](数组[1])时,现在将是“ghj”。看看控制台上的这把小提琴:)像'45'
这样的字符串数字有效吗?随着循环的进行,您正在修改数组,这会弄乱索引。请尝试使用@Ruhulsuggested@mkaran谢谢,但是我能有一个比“弄乱索引”更好、更符合逻辑的解释吗?:)Thx例如,当你在I=0时,它不是一个数字(数组[0]是“agg”),您将删除数组[i](数组[0),因此,下一次迭代时,i将等于1个数组[i](数组[1])现在将是“ghj”。看看控制台上的这把小提琴:)像'45'
这样的字符串数字有效吗?谢谢,这很好,但是你能解释一下为什么我的方法是随机工作的吗?原因是你改变了数组的长度,数组的长度一直在比较,以便循环继续。拼接会产生副作用,这意味着l长度在变化,在某一点上,由于长度的原因,您跳过了一些元素,因此我更改了Hanks,我将接受您的答案(时间段为8分钟)谢谢,这很好,但是你能解释一下为什么我的方法是随机工作的吗?原因是你改变了数组的长度,在循环继续的过程中,数组的长度一直在比较。拼接会产生副作用,这意味着长度在变化,在某个时候,你会因为长度而跳过一些元素,因此我会改变hanks、 我接受你的回答(时间段为8分钟)