【问题标题】:How to remove items from list that were pushed如何从推送的列表中删除项目
【发布时间】:2022-01-25 13:57:23
【问题描述】:

我正在尝试仅删除被推入列表的项目,以便我只剩下原始列表项目

const list = ["a", "b", "c", "d"];

for (let i = 0; i < 4; i++) {
  list.push(i);
}

console.log(list);

// outputs: a,b,c,d,1,2,3,4 // as expected

// how can we remove only the pushed items.
list.pop;
console.log(list);

// outputs : []

// desired output: a,b,c,d


【问题讨论】:

标签: javascript list push


【解决方案1】:

我不确定您的情况是什么以及您为什么要从数组中提取项目,但无论如何。
第一个选项是:将数组复制到另一个变量中
或者第二种选择:当你知道原始数组的长度时,使用拼接来提取它。

片段:

const list = ["a", "b", "c", "d"];
const original = list.slice(); // duplicating array

const originalLength = list.length // getting original length

for (let i = 0; i < 4; i++) {
  list.push(i);
}

console.log("original1: ", original);
console.log("original2: ", list.slice(0, originalLength));

【讨论】:

    【解决方案2】:

    您可以使用splice从索引中删除已开始推送新元素的元素。

    const list = ["a", "b", "c", "d"];
    
    for (let i = 0; i < 4; i++) {
      list.push(i);
    }
    
    list.splice(list.length - 4)
    console.log(list);

    【讨论】:

      【解决方案3】:

      如果您需要两个让一个“for 循环”将项目推入一个数组,然后在另一个循环中删除这些相同的项目,那么一个简单的解决方案是

      片段:

      const list = ["a", "b", "c", "d"];
      
      for (let i = 0; i < 4; i++) {
        list.push(i);
      }
      
      for (let j of list) {
        if (j) {
          list.pop();
        }
      };
      console.log(list);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-07-19
        • 1970-01-01
        • 2016-03-12
        • 1970-01-01
        • 2016-04-01
        • 2022-12-20
        相关资源
        最近更新 更多