如何使用 typescript
交换两个元素elements:elements[] =[];
elements.push(item1);
elements.push(item2);
elements.push(item3);
elements.push(item4);
elements[0] is item1
elements[3] is item4
我如何 交换 typescript 中的这些项目。我知道Javascript的方式,像这样:
*使用临时变量* javascript示例
var tmp = elements[0];
elements[0] = elements[3];
elements[3] = tmp;
但是有任何api在 typescript 中做同样的事情
array.swap()
答案 0 :(得分:25)
为什么不使用解构和数组。
[elements[0], elements[3]] = [elements[3], elements[0]];
答案 1 :(得分:3)
它没有内置功能,但您可以轻松添加它:
interface Array<T> {
swap(a: number, b: number): void;
}
Array.prototype.swap = function (a: number, b: number) {
if (a < 0 || a >= this.length || b < 0 || b >= this.length) {
return
}
const temp = this[a];
this[a] = this[b];
this[b] = temp;
}
如果您正在使用模块,那么您需要这样做以扩充Array
界面:
declare global {
interface Array<T> {
swap(a: number, b: number): void;
}
}
答案 2 :(得分:3)
swapArray(Array:any,Swap1:number,Swap2:number) : any
{
var temp = Array[Swap1];
Array[Swap1] = Array[Swap2]
Array[Swap2] = temp
return Array;
}
答案 3 :(得分:1)
你可以在Javascript中的一行中进行此操作(因此也可以使用Typescript,尽管在Typescript中你可以进行数组解构,如另一个答案中所示)。
对于原始类型(例如整数,字符串),您可以这样做来交换简单值a和b(credit here):
a = [b, b=a][0];
所以如果你有一个包含3个元素的数组,就像这样: A = [ '我', '你', '我们']
你可以像这样交换'我'和'你':
a = [a[1],a[1]=a[0],a[2]]
所以采用OP的4元素数组,交换第一个(第0个)和最后一个(第三个)元素,你会这样做:
elements = [elements[3],elements[1],elements[2],elements[3]=elements[0]]
然而,这并不容易理解代码,所以我不推荐它。使用tmp变量更简单。此外,它不是非常高效或可维护,因为您必须指定原始数组的每个元素。