You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

在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

火山引擎 最新活动