我有下面的数组,其中可以包含多个元素。
"coachID" : [
"choice1",
"choice2"
]
如果用户选择choice2,我想重新安排其内容,如下所示。
"coachID" : [
"choice2",
"choice1"
]
类似地,如果数组中有两个以上元素;
"coachID" : [
"choice1",
"choice2",
"choice3"
]
并且用户选择choice2元素,则应按以下方式重新排列数组:
"coachID" : [
"choice2",
"choice1",
"choice3"
]
本质上,所选元素应始终放置在数组的开头。
请问如何使用TypeScript实现呢?
答案 0 :(得分:2)
我认为没有关于TypeScript的任何信息。
您可以只使用splice()
取出所选元素,然后使用unshift()
将其重新添加到开头:
array.unshift(...array.splice(index, 1)); // index = index of the selected element
const data = [
"choice1",
"choice2",
"choice3"
];
const select = (array, i) => {
if (array && array.length && i < array.length) {
array.unshift(...array.splice(i, 1));
}
};
console.log(data);
select(data, 1);
console.log(data);
如果要基于所选元素的值进行操作,请添加对indexOf()
的调用:
array.unshift(...array.splice(array.indexOf(value), 1)); // value = selected value
const data = [
"choice1",
"choice2",
"choice3"
];
const select = (array, value) => {
if (array && array.length) {
const i = array.indexOf(value);
if (i > 0) {
array.unshift(...array.splice(i, 1));
}
}
};
console.log(data);
select(data, "choice2");
console.log(data);