在jQuery中创建数组并实现元素的添加与删除
看起来你已经搞定了从输入框获取值并转成数组这一步,很棒!接下来我详细说说怎么给这个数组加元素,还有删掉指定元素的几种实用方法~
向数组添加元素
JavaScript里有好几种灵活的方式给数组加元素,看你需要加在什么位置:
- 末尾添加:push()
这是最常用的方法,直接把元素追加到数组最后:list.push('hello3'); // 现在list变成 ['hello1', 'hello2', 'hello3'] - 开头添加:unshift()
要是想把元素放在数组最前面,用这个:list.unshift('hello0'); // 现在list变成 ['hello0', 'hello1', 'hello2'] - 指定位置添加:splice()
如果你想在数组中间某个位置插入元素,splice()就很合适,语法是splice(插入位置索引, 要删除的元素数量, 要添加的元素),比如在第二个元素(索引1)后面加新元素:list.splice(1, 0, 'hello1.5'); // 现在list变成 ['hello1', 'hello1.5', 'hello2']
删除数组元素
针对你说的“删除值为'hello1'的元素”,我给你几种常用方案:
方法一:indexOf() + splice()(修改原数组)
先找到目标元素的索引,再用splice删除它:
// 找到'hello1'的索引 const targetIndex = list.indexOf('hello1'); // 确认元素存在(indexOf找不到会返回-1) if (targetIndex !== -1) { // 从targetIndex位置开始,删除1个元素 list.splice(targetIndex, 1); } // 操作后list变成 ['hello2']
⚠️ 注意:如果数组里有多个'hello1',indexOf只会找到第一个匹配的。要是想删除所有相同元素,建议倒序遍历数组(避免删除元素后索引错乱):
for (let i = list.length - 1; i >= 0; i--) { if (list[i] === 'hello1') { list.splice(i, 1); } }
方法二:filter()(返回新数组,不修改原数组)
如果你不想改动原来的数组,filter()会返回一个过滤后的新数组,非常适合这种场景:
const filteredList = list.filter(item => item !== 'hello1'); // filteredList是 ['hello2'],原list保持不变
另外补充两个快速删除的方法:
- 删除最后一个元素:pop()
list.pop(); // list变成 ['hello1'] - 删除第一个元素:shift()
list.shift(); // list变成 ['hello2']
内容的提问来源于stack exchange,提问作者Henrik Petterson




