gpt4 book ai didi

javascript - React 组件中的 ES2015 非变异数组交换(或通量操作)

转载 作者:搜寻专家 更新时间:2023-11-01 05:21:30 26 4
gpt4 key购买 nike

也许我一直在搜索错误的关键字,但我一直在尝试找到一个 JavaScript(最好是 ES2015+)函数的示例,以非可变(不可变)方式交换两个数组值。我还想使用纯 JS 来执行此操作,而不必添加不变性库。

例如,如果我有 [1, 2, 3, 4, 5, 6],我想将 3 和 4(或者可能是它们的索引)传递给返回的函数一个新数组 [1, 2, 4, 3, 5, 6]。我找到了几种方法来做到这一点,但它们通过直接替换值来改变数组。我需要一个不变的方式。我猜也许使用 slice?我正在做的是一个 React 组件,如果这很重要并且数组是一个状态值。

TIA!

最佳答案

不是 ES6(还在学习中)

function swap(array, first, second){
var final = array.slice();
temp = final[first];
final[first] = final[second];
final[second] = temp;
return final
}

ES6 感谢@Benjamin

const swapIndices = (array,index1,index2) => { 
const newArray = array.slice();
newArray[index1] = array[index2];
newArray[index2] = array[index1];
return newArray;
}

关于javascript - React 组件中的 ES2015 非变异数组交换(或通量操作),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36427530/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com