【发布时间】:2019-06-19 08:30:17
【问题描述】:
我想遍历一个 JSON 数组来搜索关键字。我指的是this thread to achieve this.
entries 是一个 JSON 结构数组
[
{"a": "something", "id": 54785, "b": ["each", "every", "one"]},
{"a": "something", "id": 54785, "b": ["each", "every", "one"]},
{"a": "something", "id": 54785, "b": ["each", "every", "one"]},
]
searchItem 来自这个自定义组件
<FormInput type="text"
v-model="searchItem"
@input="searchObject()"
placeholder="Search here">
</FormInput>
我把我的函数放在这样的组件方法中。
searchObject: function() {
for (var i=0; i<this.entries.length; i++) {
for (var key in this.entries[i]) {
if (this.entries[i].key.indexOf(this.searchItem)!==-1) {
this.result.push(this.entries[i])
}
}
}
return this.result
}
我在控制台中收到此错误
TypeError: Cannot read property 'indexOf' of undefined
当我更改计算函数并尝试 [key] 而不是 .key
searchObject() {
for (var i=0; i<this.entries.length; i++) {
for (var key in this.entries[i]) {
if (this.entries[i][key].indexOf(this.searchItem)!==-1) {
this.result.push(this.entries[i])
}
}
}
return this.result
}
我没有收到任何推送结果,也没有在控制台中收到任何错误。我试图将 console.log() 命令放在我的函数上,但控制台上没有任何内容。
【问题讨论】:
-
什么是
this.result?它是在哪里定义的? -
在
data(){return{result:[]}} -
您要在哪些键中搜索?您的结构是否包含嵌套对象和数组?
-
我有许多类似于
a、id和b的键。我想搜索a和b之类的。
标签: vue.js vuejs2 vue-component