代码之家  ›  专栏  ›  技术社区  ›  Benjamin RD

Typescript更改数组元素的位置(奇数与偶数)

  •  0
  • Benjamin RD  · 技术社区  · 4 年前

    这是我场景的摘录。

    const myArray = [1,2,3,4,5,6,7,8];
    

    finalArray = [2,1,4,3,6,5,8,7];
    

    我只想改变偶数和赔率的位置,而不是反转数组。

    我正试着用地图来做,但还是不走运

    2 回复  |  直到 4 年前
        1
  •  1
  •   Aplet123    4 年前

    如果保证数组的长度为偶数,则可以使用循环并推入新数组:

    const finalArray = [];
    for (let i = 0; i < myArray.length; i += 2) {
        finalArray.push(myArray[i + 1]);
        finalArray.push(myArray[i]);
    }
    

    for (let i = 0; i < myArray.length; i += 2) {
        const temp = myArray[i];
        myArray[i] = myArray[i + 1];
        myArray[i + 1] = myArray[i];
    }
    

    或者,你甚至可以用 map

    const finalArray = myArray.map((_, i) => myArray[i ^ 1]);
    
        2
  •  1
  •   Jared Smith    4 年前

    你的假设数组 [1,2,3,4,5,6,7,8]

    如果保证数组长度为偶数:

    array.map((x, i, arr) => i % 2 ? arr[i - 1] : arr[i + 1]) 
    

    如果数组不能保证为偶数,但不包含假值(例如零):

    array.map((x, i, arr) => ((i % 2 ? arr[i - 1] : arr[i + 1]) || x))