首页 > 解决方案 > 属性匹配时替换或更新数组中的对象

问题描述

我正在使用 Vuejs 构建数据过滤组件。我将选定的过滤器选项存储在一个如下所示的数组中:

[{ "key": "payment", "name": "Payment", "options": [ "paid", "pending" ] }, { "key": "status", "name": "Order Status", "options": ["unfulfilled"] } ]

When a filter option is selected or deselected I want to update this array of objects. 即,如果我们删除“待定”选项,它将如下所示:

{ "key": "payment", "name": "Payment", "options": [ "paid"]} ...

JS中是否有办法推送键匹配的更新选项,或者我是否需要删除现有对象并替换为新对象?

标签: javascriptvuejs2

解决方案


所以我想出了这个,在添加新的更新对象之前删除对象:

updateFilters(key, name, options) {
  this.selectedOptions = this.selectedOptions.filter(obj => {
    return obj.key != key;
  });

  this.selectedOptions.push({ key: key, name: name, options: options });
}

推荐阅读