小编Sam*_*Sam的帖子

Javascript算法实践从数组中删除否定

我很难围绕这一个缠绕我的大脑:/

  • (删除否定)给定多个值的数组X(例如[-3,5,1,3,2,10]),编写一个程序来删除数组中的任何负值.程序完成后,X应该只包含正数. 在不创建临时数组的情况下执行此操作,并仅使用pop方法删除数组中的任何值.

我的想法是在数组中写一个循环.如果X [i]为负,则启动另一个循环交换X [j]和X [j + 1]直到数组结束.(保留数组的顺序)然后使用pop().

当我运行脚本时,看起来循环是无限的.此外,如果一行中有两个负值,则第二个可能在i的下一次迭代中被跳过.有更简单的方法吗?

var X = [1,-6,-7,8,9];
//test= [1,-7,8,-6,9]
temp = 0

for (i = 0;i<X.length-1;i++){
    if (X[i]<0){
        for (j = i;j<=X.length-1;j++){
            X[j] = temp
            X[j] = X[j+1] 
            X[j+1] = temp
        }
        if(X[X.length-1] < 0){X.pop()}
    }
};
console.log(X);
Run Code Online (Sandbox Code Playgroud)

javascript arrays algorithm

3
推荐指数
2
解决办法
336
查看次数

标签 统计

algorithm ×1

arrays ×1

javascript ×1