我正在尝试通过关键字专门搜索 JSON。我已经成功地通过 ID 进行了搜索,在下面的代码中,它是“tags”。不过,我想做的是,在“tags”的 ID 内搜索,但通过关键字“deprecied”进行搜索。仅选择 JSON 中括号中表示“已折旧”的内容。然后标题和 uri 将从中提取并写入文档,就像我在代码中一样。
我如何使用当前代码进行关键字搜索?如果我的逻辑难以理解,请在评论中告诉我。预先感谢:)
注意:这正是将使用数据的 JSON 格式。
这是我的代码:
<script type='text/javascript'>
window.onload=function(){
var data = {
"Feed": [
{
"categories":[
"Depreciated",
"Test"
],
"content":"",
"tags":[
"Depreciated",
"Test"
],
"title":"Visual Design",
"uri":"google.com"
},
{
"categories":[
"Depreciated"
],
"content":"",
"tags":[
"Depreciated"
],
"title":"Typography",
"uri":"google.com"
}
]
},
res = JSON.search( data, '//*[tags]' );
for (var i=0, str=''; i<res.length; i++) {
str += '<a href="' + res[i].uri + '">Link</a>' + res[i].title + '<br/>';
}
document.getElementById('output').innerHTML = str;
}
</script>
最佳答案
没有必要为此使用 jQuery。 Try something like this instead :
function getTitlesByTag(arr, tag) {
return arr.filter(function(item) {
return item.tags.includes(tag)
}).map(function(item) {
return return {
title: item.title,
uri: item.uri
}
})
}
Array.prototype.includes
没有 IE 支持,所以如果您担心这一点,可以将检查交换为 indexOf,如下所示:
function getTitlesByTag(arr, tag) {
return arr.filter(function(item) {
return item.tags.includes(tag)
}).map(function(item) {
return {
title: item.title,
uri: item.uri
}
})
}
关于javascript - 使用 jQuery 按关键字搜索 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45556530/