Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有for循环+;条件删除不必要的元素_Javascript_Arrays - Fatal编程技术网

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分钟)