javascript 从 assoc 数组中删除(空)数组

标签 javascript associative-array

我有一个 assoc js 数组,我想从中删除一个元素。 我的解决方案有效,但不太好,有更好的解决方案吗?

// i got this assoc array
var cm = [];
    cm["a"] = ["a"];
    cm["b"] = ["c"];
    cm["s"] = ["a", "b", "c"];
    cm["x"] = [];
console.log(cm);

var searchKey = "s";
var p = ["a","c","d", "b"]; // to remove from searchKey array

// remove elements (works fine)
cm[searchKey] = cm[searchKey].filter(value => (p.includes(value) === false));
console.log(cm); // now cm[searchKey] is an empty array

// if the array at index 'searchKey' is empty remove it from assoc array
var newarray = [];
if (cm[searchKey].length===0)
{
    for(key in cm)
  {
    if (key!=searchKey) newarray[key] = cm[key];
  }
}
cm = newarray;
console.log(cm);

我尝试使用过滤器和拼接,但两者都仅适用于数组而不是关联数组。

最佳答案

你有一个对象,所以你可以这样做:

if (cm[searchKey].length===0)
{
    delete cm[searchKey]
}

关于javascript 从 assoc 数组中删除(空)数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50007162/

相关文章:

javascript - JS : Fizz Buzz Sequence Quiz (Display last element in series as Integer in case it equals to Fizz, 嗡嗡声或嘶嘶声)

javascript - jquery 在输入元素旁边添加一个元素

php - 如何在 PHP 中将 3 个数组合并为一个关联数组

PHP:打印关联数组

PHP 从数组中删除元素无法正常工作

c - 结构体键的简单查找

javascript - Odoo-12:我创建了一个小部件。我如何使用它?

javascript - 如何在我的自定义网站中添加 CSS 和 HTML 编辑器?

javascript - RegExp 对象保留先前的匹配项

php - 关联数组中的单个 mysql 字段