从数组中删除负值并按升序排列正值

时间:2014-01-19 15:49:38

标签: javascript

完全迷失。如何以正确的方式写作?

var i = [1, -2, 3, -4, 5, 7, -6];
for (i = 0, i < 7, i++) {
    if (i[0] >= 0 && i[0] <= i[1]) {
        continue;
    } else {
        i[0] = i[1];
        break;
    } else {
        if (i[i]) < 0) i.splice(i, 1);
    }
}

document.write("array[i]");

3 个答案:

答案 0 :(得分:1)

i.filter( function (el) {return el >= 0;});
i.sort( function (a, b) {return a - b;});

答案 1 :(得分:0)

如果你第一次对数组进行排序,那么所有的负数项都在数组的开头,所以你可以循环遍历它们以找到第一个要保留的项,并从那一点获取数组的一部分:

i.sort(function(x, y) { return x - y; });
var index = 0;
while (index < i.length && i[index] < 0) index++;
i = i.slice(index);

document.write(i);

答案 2 :(得分:0)

var myArray = [7, -2, 3, -4, 5, 1, -6];
for (i=0;i<myArray.length;i++) 
{
 if (myArray[i]<0)
  myArray.splice(i, 1);
}
myArray.sort();