gpt4 book ai didi

javascript - 如何从 JSON 对象中提取多个主题标签?

转载 作者:行者123 更新时间:2023-11-29 16:05:01 25 4
gpt4 key购买 nike

我正在尝试从下面的 JSON 对象中提取“动物”和“鱼”主题标签。我知道如何提取名为“动物”的第一个实例,但我不知道如何提取这两个实例。我正在考虑使用循环,但不确定从哪里开始。请指教。

data = '{"hashtags":[{"text":"animal","indices":[5110,1521]},
{"text":"Fish","indices":[122,142]}],"symbols":[],"user_mentions":
[{"screen_name":"test241","name":"Test
Dude","id":4999095,"id_str":"489996095","indices":[30,1111]},
{"screen_name":"test","name":"test","id":11999991,
"id_str":"1999990", "indices":[11,11]}],"urls":[]}';

function showHashtag(data){
i = 0;
obj = JSON.parse(data);
console.log(obj.hashtags[i].text);
}

showHashtag(data);

最佳答案

使用Array.prototype.filter() :

let data = '{"hashtags":[{"text":"animal","indices":[5110,1521]},{"text":"Fish","indices":[122,142]}],"symbols":[],"user_mentions":[{"screen_name":"test241","name":"Test Dude","id":4999095,"id_str":"489996095","indices":[30,1111]},   {"screen_name":"test","name":"test","id":11999991,        "id_str":"1999990", "indices":[11,11]}],"urls":[]}';

function showHashtag(data){
return JSON.parse(data).hashtags.filter(e => /animal|fish/i.test(e.text))
}

console.log(showHashtag(data));

为了使该函数可重用,如果您想查找其他“主题标签”,您可以像这样传递一个数组:

function showHashtag(data, tags){
let r = new RegExp(tags.join("|"), "i");
return JSON.parse(data).hashtags.filter(e => r.test(e.text))
}

console.log(showHashtag(data, ['animal', 'fish']));

要仅获取文本属性,只需链接 map()

console.log(showHashtag(data, ['animal', 'fish']).map(e => e.text));

或者在函数中

return JSON.parse(data).hashtags
.filter(e => /animal|fish/i.test(e.text))
.map(e => e.text);

编辑:

如果您只需要一个包含 ['animal', 'fish'] 的数组,我真的不明白为什么要按动物和鱼类进行过滤。要仅获取具有文本属性的对象,请再次使用过滤器,但像这样

let data = '{"hashtags":[{"text":"animal","indices":[5110,1521]},{"text":"Fish","indices":[122,142]}],"symbols":[],"user_mentions":[{"screen_name":"test241","name":"Test Dude","id":4999095,"id_str":"489996095","indices":[30,1111]},   {"screen_name":"test","name":"test","id":11999991,        "id_str":"1999990", "indices":[11,11]}],"urls":[]}';

function showHashtag(data){
return JSON.parse(data).hashtags
.filter(e => e.text)
.map(e => e.text);
}

console.log(showHashtag(data));

关于javascript - 如何从 JSON 对象中提取多个主题标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45781748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com