【问题标题】:How to splice multiple array elements and insert accordingly?如何拼接多个数组元素并相应插入?
【发布时间】:2021-12-16 09:15:21
【问题描述】:

const data = response.data
console.log(data)
const temp = data.ssps_with_scated.splice(5, 1)(1, 3)[0]
data.ps_with_ed.splice(2, 1, 0, temp) 

我正在努力实现最终我得到了它。但问题是,我不能期望数组值始终相同。所以我决定根据 ID 重新排列数组值。

【问题讨论】:

    标签: javascript vue.js axios


    【解决方案1】:

    嗯,

    splice(7,1)(21,3)
    

    此代码将导致错误。由于 Array.prototpy.slice 返回一个新数组。
    如果你这样做也是一样的:

    const a = [1,2,3]
    const b = a.splice(1,1);
    b(2,1) // b.splice(...) is not a function
    

    编辑: 也许有更快/更好的解决方案,但是...... 您可以使其更通用,但仅适用于您的情况:

    const array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21];
    const first = array[7];
    const second = array[21];
    
    // Add elements on certain indices in array (second and third)
    array.splice(2, 0, first, second)
    
    // Remove first from the array (index is 7 + 2 because we added 2 elements)
    array.splice(9, 1)
    
    // Remove 21 from the array (index is 22 - 1 because we added 2 elements and removed 1, not: number 21 is on index 22)
    array.splice(21, 1);
    

    【讨论】:

    • 请您在原始问题中发布您的确切情况。放置示例数组,比如说,[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21, 22,23,24,25] 和您的预期结果?
    • 拜托,正如我所说,您的代码在这里并不重要。你想达到什么目的,我从你的解释和你的代码中都不明白?仅给出一个示例数组,您希望得到什么结果?
    【解决方案2】:

    data 不应该是 const,因为值正在更新。 Splice 一次也只能在一个数组上调用。如果您需要在多个数组上调用它,请创建一个循环或迭代它们。

    如果您想将第 7 个位置的当前值注入到第 2 个位置...您需要执行类似...

    array.splice(2, 0, array[7])

    【讨论】:

    • 是的,你是对的。但我需要调用多个数组值。所以为了做到这一点。可以拼接数组并制作它们
    • 如果要在数组中的多个索引处注入值,则需要多次调用 splice。您可以在单个索引处注入多个值,例如 Array.splice(a, 0, b, c),其中 a 等于您要注入值 b 和 c 的索引。
    【解决方案3】:

    一种方式:

     arr = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]
     
    arr.splice(2, 0, arr[7], arr[21])
     arr.splice(9, 1)
     arr.splice(22, 1)
     console.log(JSON.stringify(arr))
     //[0,1,7,21,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,18,19,20,] 

    【讨论】:

      猜你喜欢
      • 2021-08-06
      • 2021-07-28
      • 1970-01-01
      • 2015-02-22
      • 2023-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多