有没有一种优雅的方法可以使用 vanilla JS 将项目从一个数组交换到另一个数组?
如果您正在为运动队构建一个简单的应用程序,则此功能会起作用。在给定的球队中,当您从首发阵容 (array1) 中换出一名球员时,您会用替补阵容 (array2) 中的一名球员替换他们。
一旦做出选择,数组就会更新,从数组 2 中选择的数组项现在出现在数组 1 中,反之亦然。
Pseudocode Example:
Starting Lineup = Bob, Susan, Kevin, Jack, Tim
Substitude Lineup = George, Steve, Martha
Player to sub out: Jack
Player to sub in: Martha
// JS Magic Activates! (Insert your ingenious code here.)
Result:
Starting Lineup: Bob, Susan, Kevin, Martha, Tim
Substitute Lineup: George, Steve, Jack
我找到了 swap the order of two items in a single array, using a prototype method 的优雅解决方案.但是,如果您处理两个不同数组中的两个项目,这将不起作用。
我的问题不是解决方案是否可行(当然可行),而是最好的方法是使用干净、精确和优雅的代码,而不需要对于一堆 for-loop 意大利面。
最佳答案
您可以获取所需元素的索引并使用 destructuring assignment .
var swap = (a1, a2, v1, v2) => {
var i = a1.indexOf(v1),
j = a2.indexOf(v2);
[a1[i], a2[j]] = [a2[j], a1[i]];
},
array1 = ['Bob', 'Susan', 'Kevin', 'Jack', 'Tim'],
array2 = ['George', 'Steve', 'Martha'];
swap(array1, array2, 'Jack', 'Martha')
console.log(array1);
console.log(array2);
.as-console-wrapper { max-height: 100% !important; top: 0; }
关于javascript - 在 JavaScript 中将项目从一个数组交换到另一个数组的优雅方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48194204/