javascript - 从中间向外处理数组

标签 javascript arrays

我需要从中间的单词开始遍历一个数组。

var array = [a,b,c,d,e];

我需要按以下顺序打印: c,d,b,e,a

我已经将数组分成两半,先向前,然后向后,这已经是一个改进,但我真的需要在每一侧进行一个,直到每一侧的数组结束。

假设我想从中间开始。我在循环语句、条件之前有以下内容,但我似乎无法弄清楚第三部分如何在每一侧递增地切换一个。

for (var i = Math.floor(array.length/2); i >= 0 || i < array.length; i?){
//Do Something here.
}

有人知道怎么做吗? 显然,我似乎无法在这种情况下对此进行测试。

谢谢

我修改了the answer below (非常感谢)想出这个功能。它允许从阵列中的任何地方开始并选择前进的方向。我相信它可以写得更优雅。错误的索引号也有安全性。

var array = ["a", "b", "c", "d", "e"];

function processArrayMiddleOut(array, startIndex, direction){
    if (startIndex < 0){ 
        startIndex = 0;
    }
    else if ( startIndex > array.length){
        startIndex = array.lenght-1;
    };

    var newArray = [];

    var i = startIndex;

    if (direction === 'right'){
        var j = i +1;
        while (j < array.length || i >= 0 ){
            if (i >= 0) newArray.push(array[i]);
            if (j < array.length) newArray.push(array[j]);
            i--;
            j++;                
        };
    }
    else if(direction === 'left'){
        var j = i - 1;
        while (j >= 0 || i < array.length ){
            if (i < array.length) newArray.push(array[i]);
            if (j >= 0) newArray.push(array[j]);
            i++;
            j--;                
        };
    };

    return newArray;            
}    

var result = processArrayMiddleOut(array, 2, 'left');

alert(result.toString());

http://jsfiddle.net/amigoni/cqCuZ/

最佳答案

两个计数器,一个上升,另一个下降:

var array = ["a", "b", "c", "d", "e"];
var newArray = [];

var i = Math.ceil(array.length/2);
var j = i - 1;

while (j >= 0)
{
    newArray.push(array[j--]);
    if (i < array.length) newArray.push(array[i++]);
}

http://jsfiddle.net/X9cQL/

关于javascript - 从中间向外处理数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12937707/

相关文章:

javascript - 从父数组中获取长度最大的数组

PHP 用数组中的值替换子字符串

java - 如何改进 HashMap 数组中的搜索

Java 对并行数组进行排序,需要帮助(NullPointerException 错误)

javascript - 将数据属性值插入 Iframe src

javascript - 在雪花的 javascript 过程中传递值

javascript - 为什么 .json() 是异步的?

javascript - try-catch 不适用于 XMLHTTPRequest

python - 在 Python 中将类似字节的字符串转换为实际字节

javascript - 如何按数组成员求和