Javascript 如何使用lodash将数组元素从一个位置交换到另一个位置?
如何使用lodash库在JavaScript中将数组元素从一个位置交换到另一个位置? 大概是这样的:Javascript 如何使用lodash将数组元素从一个位置交换到另一个位置?,javascript,lodash,Javascript,Lodash,如何使用lodash库在JavaScript中将数组元素从一个位置交换到另一个位置? 大概是这样的: _.swap(array, fromIndex, toIndex) //but this is not working 这是在线lodash测试仪,在那里我测试了一些方法,但没有一种有效 任何帮助都将不胜感激。谢谢 如果您只想交换数组中两个元素的索引位置,那么您可以使用本机JavaScript快速实现这一点。下面是一个使用现代ES6+语法的解决方案: const swapArrayLocs=(
_.swap(array, fromIndex, toIndex) //but this is not working
这是在线lodash测试仪,在那里我测试了一些方法,但没有一种有效
任何帮助都将不胜感激。谢谢 如果您只想交换数组中两个元素的索引位置,那么您可以使用本机JavaScript快速实现这一点。下面是一个使用现代ES6+语法的解决方案:
const swapArrayLocs=(arr,index1,index2)=>{
[arr[index1],arr[index2]=[arr[index2],arr[index1]]
}
如果您从未见过像我上面使用的那样的分解任务,您可以。当您需要交换两个变量(或者在本例中,两个数组索引)的值时,这是解决此类问题的一种特别有用的技术
为了防止您需要支持传统浏览器,如Internet Explorer,这里有一个ES5版本,在语法上更详细一些:
var-swapArrayLocs=函数(arr、index1、index2){
var-temp=arr[index1];
arr[index1]=arr[index2];
arr[index2]=温度;
}
您还可以将a(而不是上述)与以下任一方法结合使用:
函数swapArrayLocs(arr、index1、index2){
var-temp=arr[index1];
arr[index1]=arr[index2];
arr[index2]=温度;
}
上述所有实现您正在寻找的功能的方法都将以相同的方式使用——就像任何其他函数调用一样。您将调用该函数,然后将要影响的数组和要交换其值的两个数组索引传递给它
const myArray = ["a", "b", "c", "d", "e", "f"];
swapArrayLocs(myArray, 0, 4);
// myArray is now: ["e", "b", "c", "d", "a", "f"]
这将操作数组,但我编写的函数不会返回任何内容。如果您希望更改,您可以在末尾添加一个return语句,以便将arr
传递回,或者可能添加一个包含已交换的两个元素的数组。。。无论您的特定用例需要什么。方法1。
As Array.splice将在新数组中返回删除的值,因此您可以按如下方式写入:
const swapArrayLoc = (arr, from, to) => {
arr.splice(from, 1, arr.splice(to, 1, arr[from])[0])
}
方法2。
使用临时变量
const swapArrayLoc = (arr, from, to) => {
let temp = arr[to];
arr[to] = arr[from];
arr[from] = temp;
}
注意:这些方法将变异原始数组,如果不想变异,请复制到数组。是否希望数组项彼此交换位置?就像在你的例子中,用fromIndex代替toIndex,用toIndex代替fromIndex?@StephenMIrving是的!有什么方法可以通过使用lodash来实现吗?我在下面创建了一个使用原生JS的实现。出于某种原因,您需要在答案中使用lodash吗?还是使用普通的香草javascript呢?谢谢!这真的很有帮助。虽然我在找lodash,但这回答了我的问题。