我正在尝试通过关键字专门搜索 JSON。我已经通过一个 ID 成功搜索到了一个 ID,在下面的代码中,它是“标签”。不过,我想要做的是,在“标签”的 ID 内搜索,但通过“折旧”的关键字进行搜索。只会选择 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。试试这样的:
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
}
})
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句