按索引过滤对象数组
Posted
技术标签:
【中文标题】按索引过滤对象数组【英文标题】:Filter array of objects by index 【发布时间】:2019-08-04 01:07:05 【问题描述】:我想。
<ul>
<li v-for="(list,index) in lists" v-bind:key="index"
@dblclick="deleteNote(index)">
list.note
</li>
</ul>
列表被imp
的对象填充
var lists = [];
var imp =
note: "bla",
hinweis: "blub",
showNotiz: false
;
deleteNote(i)
let arr = this.lists.filter(item =>
item.note !== this.lists[i]
);
this.lists = arr;
【问题讨论】:
首先,note 是一个字符串,lists[i] 是一个对象。或者 note 可以是一个对象吗? 【参考方案1】:我认为这会奏效
deleteNote(i)
this.lists = this.lists.filter((_, index) => index !== i);
【讨论】:
【参考方案2】:您需要使用过滤器函数的第二个参数。
let arr = this.lists.filter( (item, index) =>
item.note !== this.lists[index]
);
this.lists = arr;
这里是 Filter 的 MDN 文档
希望这会有所帮助!
【讨论】:
我认为主要问题是我无法将 String(item.note) 与索引进行比较。 如果我们在lists
变量中包含带有note
键的对象,我们可以很好地实现这一点。【参考方案3】:
从外观上看,您想按索引删除一个项目吗?
deleteNote(i)
this.lists.splice(i, 1);
上面的 sn-p 应该修改现有数组并删除所需索引处的一个元素。
MDN: Array.prototype.splice()
【讨论】:
以上是关于按索引过滤对象数组的主要内容,如果未能解决你的问题,请参考以下文章