gpt4 book ai didi

Javascript删除数组结果留下逗号

转载 作者:行者123 更新时间:2023-11-28 13:14:05 26 4
gpt4 key购买 nike

我试图从数组中删除一个输入,但在循环之后,它会在删除的结果所在处留下一个逗号分隔符。

问:如何从数组中删除逗号?

想要的输出:

循环后

[{ number: 10, count: 1 }, { number: 5, count: 1 } ]

我当前的代码:

        console.log("before loop:");
console.log(bNumbersCount);


for(var key in bNumbersCount) {
var card = bNumbersCount[key];
if (card['count'] != x) {
delete bNumbersCount[key];
}
}


console.log("after loop");
console.log(bNumbersCount);

控制台日志结果:

before loop:
[ { number: 2, count: 3 },
{ number: 10, count: 1 },
{ number: 5, count: 1 } ]
after loop
[ , { number: 10, count: 1 }, { number: 5, count: 1 } ]

最佳答案

这不是 JavaScript 中处理数组的方式。

  1. 不要使用for-in在 JavaScript 数组上,除非你知道自己在做什么并且有特定的原因;相反,use any of the several other ways outlined in this answer .

  2. 不要使用delete除非您知道自己在做什么并且想要创建一个稀疏数组。

您可能想循环遍历数组并实际删除条目。有两种方法可以做到这一点:

  1. 通过filter创建一个数组,其中仅包含您不想删除的条目:

    aNumbersCount = aNumbersCount.filter(function(entry) {
    return card.count == x;
    });
  2. 使用splice就地修改现有数组,在这种情况下,您可能需要向后循环,这样数组索引就不会改变:

    for (var n = aNumbersCount.length - 1; n >= 0; --n) {
    if (aNumbersCount[n].count != x) {
    aNumbersCount.splice(n, 1); // Removes one entry at index n
    }
    }
<小时/>

旁注:card['count']可以更简单地写成card.count 。当属性名称来自表达式(例如从变量获取值)或者名称包含使其成为无效 IdentifierName 的字符(例如空格)。

关于Javascript删除数组结果留下逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40071675/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com