我在使用角度打字稿时遇到数组问题
我有一个包含5个元素的数组,并且我有4个用例,在这4种情况下,我需要删除arr。[3]其他1,2,3种情况下的数组的数组,我需要arr [3]元素
arr: [] = [1,2,3,4,5];
switch (event) {
case 1:
console.log(arr); // 1,2,3,4,5
break;
case 2:
console.log(arr); // 1,2,3,4,5
break;
case 3:
console.log(arr); // 1,2,3,4,5
break;
case 4:
const arrIndex = this.arr[3];
this.arr = this.arr.filter(function(item){
return item !== arrIndex
});
console.log(arr); // 1,2,3,5
break;
}
案例4之后,我删除了白色滤镜arr [3],如何放回arr [3]元素?
答案 0 :(得分:0)
要创建一个在其中任意位置插入新元素的数组,最简单的选择是组合Array#splice
和Array#concat
。
function createArrayAndAdd(sourceArray, newItem, indexToInsert) {
const start = sourceArray.slice(0, indexToInsert);
const end = sourceArray.slice(indexToInsert);
return [].concat(start, newItem, end);
}
const originalArray = [
{ id: 1, name: "Alice" },
{ id: 2, name: "Bob" },
{ id: 4, name: "David" }
]
const elementToAdd = { id: 3, name: "Carol" };
const insertAt = 2;
console.log("result: ", createArrayAndAdd(originalArray, elementToAdd, insertAt));
console.log("original is unmodified", originalArray)
或者,您可以创建数组的副本并使用Array#splice
function createArrayAndAdd(sourceArray, newItem, indexToInsert) {
const result = sourceArray.slice();
result.splice(indexToInsert, 0, newItem);
return result;
}
const originalArray = [
{ id: 1, name: "Alice" },
{ id: 2, name: "Bob" },
{ id: 4, name: "David" }
]
const elementToAdd = { id: 3, name: "Carol" };
const insertAt = 2;
console.log("result: ", createArrayAndAdd(originalArray, elementToAdd, insertAt));
console.log("original is unmodified", originalArray)