使用移位方法的交换数组

时间:2015-03-06 08:36:43

标签: javascript jquery arrays angularjs backbone.js

我正在尝试交换数组并使用shift方法打印它,但不确定我是否可以使用它。

Code Snippet以下。

var points = [40, 100, 1, 5, 25, 10];

//trying to achieve like anotherPoints array
//var anotherPoints = [1, 5, 100, 40, 25, 10];

for (index = 0; index < points.length; index++) {
  points.shift();
  console.log(points);
}

2 个答案:

答案 0 :(得分:0)

shift()方法不会移动或交换数组的元素。它类似于pop(),但它弹出了Array中的第一个元素。

例如,

var points = [40, 100, 1, 5, 25, 10];
console.log(points.shift());  // 40
console.log(points); // [100, 1, 5, 25, 10]

关于重新排列数组元素的要求,您必须使用Array.splice()方法。看看这个问题Reordering arrays

答案 1 :(得分:0)

获得所需结果的一些逻辑:

var points = [40, 100, 1, 5, 25, 10],
    temp1 = [], temp2 = [], anotherArray;
points.forEach(function(val){
    if(val < 10 ) {
        temp1.push(val)
    } else {
        temp2.push(val);   
    }
});
anotherArray = temp1.sort().concat(temp2.sort(function(a,b){return b- a}));
alert(anotherArray);

通过shiftsplice无法实现。除非手动创建数组。