我很难围绕这一个缠绕我的大脑:/
我的想法是在数组中写一个循环.如果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)