如何解决数组打字稿删除并将元素放回数组
我在使用角度打字稿时遇到数组问题
我有一个包含5个元素的数组,并且我有4个用例,在这4种情况下,我需要删除arr。[3]其他1,2,3种情况下的数组的数组,我需要arr [3]元素
arr: [] = [1,3,4,5];
switch (event) {
case 1:
console.log(arr); // 1,5
break;
case 2:
console.log(arr); // 1,5
break;
case 3:
console.log(arr); // 1,5
break;
case 4:
const arrIndex = this.arr[3];
this.arr = this.arr.filter(function(item){
return item !== arrIndex
});
console.log(arr); // 1,5
break;
}
案例4之后,我删除了白色滤镜arr [3],如何放回arr [3]元素?
解决方法
要创建一个在其中任意位置插入新元素的数组,最简单的选择是组合Array#splice
和Array#concat
。
- 在插入点之前 组成一个数组,在之后的所有数组组成一个数组。
- 创建一个将起始数组,项目和结束数组组合在一起的数组。
function createArrayAndAdd(sourceArray,newItem,indexToInsert) {
const start = sourceArray.slice(0,indexToInsert);
const end = sourceArray.slice(indexToInsert);
return [].concat(start,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,indexToInsert) {
const result = sourceArray.slice();
result.splice(indexToInsert,newItem);
return result;
}
const originalArray = [
{ id: 1,originalArray)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。