2020年的一个需求中,我需要使用JS对一个列表进行各种增删改查的操作。一时间我甚至想要去使用链表来进行操作。
但是查阅资料后我发现,使用splice()函数可以很快捷地实现一些数组的增删改查操作。为了便于自己的使用,节省查询时间,我总结了下面的内容。
下面的方法主要是使用下标进行操作。如果是用值的话,可以通过indexOf()函数来获取下标。值不存在则返回-1。
值交换
function swap_arr(a_list, index1, index2) {
a_list[index1] = a_list.splice(index2, 1, a_list[index1])[0];
return a_list;
}
置顶
function up_arr(a_list, index){
if(index!=0 && index!=-1){
a_list[index] = a_list.splice(index-1, 1, a_list[index])[0];
}
}
下移
function down_arr(a_list, index) {
if(index!=a_list.length-1 && index!=-1){
a_list[index] = a_list.splice(index+1, 1, a_list[index])[0];
}
}
插入
function ins_arr(a_list, index, a_data) {
if(index!=-1){
if (a_list.indexOf(a_data)==-1) {
a_list.splice(index+1, 0, a_data);
return true;
}
else {
return false;
}
}
}
顶部插入
function topins_arr(a_list, a_data) {
a_list.splice(0, 0, a_data)
}
删除元素
function del_arr(a_list, a_data_list) {
for (const ele of a_data_list) {
let index = a_list.indexOf(ele);
if(index!=-1){
a_list.splice(index, 1);
}
}
}