有关数组的一些

JavaScript:数组去重函数与在vargroup中的应用,
本文介绍了一个名为`removeObjectWithId`的JavaScript函数,用于从数组vargroup中根据id删除重复对象。该函数通过查找指定id并将其从数组中移除,展示了处理数组内容的基本操作。
var group = [
	{id:1,type:36},
	{id:2,type:43},
	{id:3,type:64},
	{id:4,type:23},
	{id:5,type:89}
]
// 删除数组中重复id的某条对象的方法封装
function removeObjectWithId(arr, idToRemove) {
    const indexToRemove = arr.findIndex(item => item.id === idToRemove);
    
    if (indexToRemove !== -1) {
      arr.splice(indexToRemove, 1);
    }
}
// 使用 调用这个方法 第一个传数组 第二个传要对比的参数(这里是id)
removeObjectWithId(group,4);
console.log(group);

随时添加有关数组的内容

<think>我们已知用户之前讨论了Vue3和Vue2的写法区别,现在用户突然询问数组的方法。根据提供的引用,我们需要详细解答数组的常用方法。 引用内容: [1] 介绍了数组的常用方法,分为改变原数组的方法、不改变原数组的方法和最新的不可变方法。 [2] 重点介绍了splice方法,可以添加、删除和插入元素。 [3] 示例了push和pop方法。 因此,我们将按照以下结构回答: 1. 改变原数组的方法(突变方法) 2. 不改变原数组的方法(非突变方法) 3. 最新的不可变方法(如使用扩展运算符等) 注意:在回答中,我们将在适当位置添加引用标记[^1][^2][^3]。 同时,我们需要生成相关问题。 由于用户之前的问题是关于Vue的,而当前问题是关于JavaScript数组的,所以相关问题应围绕数组方法展开。 </think>以下是JavaScript数组常用方法的系统分类说明,结合引用内容进行详细解析: ### 一、改变原数组的方法(突变方法) 1. **`splice()`** - 添加/删除/替换元素 语法:`arr.splice(start, deleteCount, elem1, ..., elemN)` ```javascript let arr = [1, 2, 3]; arr.splice(1, 1, 'a', 'b'); // 从索引1删除1个元素,添加'a','b' console.log(arr); // [1, "a", "b", 3] [^2] ``` 2. **`push()`** - 末尾添加元素 ```javascript let arr = [1]; arr.push(2, 3); console.log(arr); // [1, 2, 3] [^3] ``` 3. **`pop()`** - 删除末尾元素 ```javascript let arr = [1, 2, 3]; arr.pop(); console.log(arr); // [1, 2] [^3] ``` 4. **`shift()`** - 删除首元素 ```javascript let arr = [1, 2, 3]; arr.shift(); console.log(arr); // [2, 3] ``` 5. **`unshift()`** - 开头添加元素 ```javascript let arr = [2, 3]; arr.unshift(1); console.log(arr); // [1, 2, 3] ``` 6. **`sort()`** - 数组排序 ```javascript let arr = [3, 1, 2]; arr.sort((a, b) => a - b); console.log(arr); // [1, 2, 3] ``` 7. **`reverse()`** - 反转数组顺序 ```javascript let arr = [1, 2, 3]; arr.reverse(); console.log(arr); // [3, 2, 1] ``` ### 二、不改变原数组的方法(非突变方法) 1. **`slice()`** - 截取子数组 ```javascript let arr = [1, 2, 3]; let subArr = arr.slice(1, 3); console.log(subArr); // [2, 3] 原数组不变 ``` 2. **`concat()`** - 合并数组 ```javascript let arr1 = [1, 2]; let arr2 = arr1.concat([3, 4]); console.log(arr2); // [1, 2, 3, 4] ``` 3. **`filter()`** - 条件过滤 ```javascript let arr = [1, 2, 3, 4]; let filtered = arr.filter(x => x > 2); console.log(filtered); // [3, 4] ``` 4. **`map()`** - 元素映射 ```javascript let arr = [1, 2, 3]; let mapped = arr.map(x => x * 2); console.log(mapped); // [2, 4, 6] ``` 5. **`reduce()`** - 累积计算 ```javascript let arr = [1, 2, 3]; let sum = arr.reduce((acc, cur) => acc + cur, 0); console.log(sum); // 6 ``` ### 三、不可变方法(现代ES6+推荐) 1. **扩展运算符** ```javascript let arr = [1, 2, 3]; let newArr = [...arr, 4]; // [1, 2, 3, 4] ``` 2. **`Array.from()`** - 类数组数组 ```javascript let set = new Set([1, 2, 3]); let arr = Array.from(set); // [1, 2, 3] ``` 3. **`flat()`** - 数组扁平化 ```javascript let arr = [1, [2, [3]]]; console.log(arr.flat(2)); // [1, 2, 3] ``` > **关键区别提示**: > 避免使用`delete arr[index]`,因为它会留下空位(如`[1, empty, 3]`)而不改变数组长度,应使用`splice()`实现元素删除[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钟Bubble

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值