【问题标题】:Javascript - delete object from JSON array [duplicate]Javascript - 从 JSON 数组中删除对象 [重复]
【发布时间】:2018-06-19 00:03:43
【问题描述】:

我想从 JSON 对象数组中删除一个对象。 这是数组:

var standardRatingArray = [
    { "Q": "Meal",
      "type": "stars"
    },
    { "Q": "Drinks",
      "type": "stars"
    },
    { "Q": "Cleanliness",
      "type": "stars"
    }
];

例如,如何删除键为 "Q": "Drinks" 的对象? 当然最好不要迭代数组。

提前致谢。

【问题讨论】:

  • 不迭代数组?唯一的方法是事先知道数组中对象的索引,然后在该项目上使用delete
  • @PatrickEvans 我同意您事先需要索引以避免迭代,但是使用删除运算符会在数组中留下一个“洞”(并且数组长度不会改变)。可能最好使用.splice 删除它。
  • 仅供参考 JSON 代表 Javascript 对象表示法。这是一种将 javascript 对象存储为字符串的方法。您的示例是一个包含对象的普通数组,而不是 JSON。
  • @CRice,你是对的,我错了,错误地认为他们想要删除属性而不是数组项

标签: javascript arrays json


【解决方案1】:

您必须找到要删除的项目的索引,因此您总是必须迭代数组,至少部分迭代。在 ES6 中,我会这样做:

const standardRatingArray = [
    { "Q": "Meal",
      "type": "stars"
    },
    { "Q": "Drinks",
      "type": "stars"
    },
    { "Q": "Cleanliness",
      "type": "stars"
    }
];

const index = standardRatingArray.findIndex(x => x.Q === "Drinks");

if (index !== undefined) standardRatingArray.splice(index, 1);

console.log("After removal:", standardRatingArray);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 2020-10-25
    • 2018-01-08
    • 2018-11-14
    相关资源
    最近更新 更多