javascript - 从数组内对象的字段中提取所有单词

标签 javascript arrays json

我有这个数组:

array = [{"full_name":"louis jackson","title1":"english teacher,"description":"good and nice teacher"},{"full_name":"peter carey","title1":"math teacher,"description":"bad and ugly teacher"}]

我需要获取这个数组

results = ["louis","jackson","english", "teacher",good","and","nice","teacher","peter","carey","math","teacher","bad","and","ugly","teacher"]

我已经尝试过:

results = [];
array.forEach(item => {
results.push (item.full_name.split(" "));
results.push (item.title1.split(" "));
results.push (item.description.split(" "));    
}

我只是得到多个分离的数组;谁能以正确的方式指导我?

最佳答案

我编写了一些干净的代码来为您完成这一切

array = [{"full_name":"louis jackson","title1":"english teacher","description":"good and nice teacher"},{"full_name":"peter carey","title1":"math teacher","description":"bad and ugly teacher"}]

var results = array.flatMap(obj => {
  const vals = Object.values(obj);
  return vals.flatMap(val => val.split(' '));
})

console.log(results);

Object.values 只是从每个对象的每个属性中获取值,因此您无需处理“full_name”或“title1”等键

一旦获得了值,就可以将它们按空格分开并将它们作为数组返回。

flatMap 确保如果您返回一个数组数组,它​​会将其展平 1 层。

编辑——这是一行:

var results = array.flatMap(obj => Object.values(obj).flatMap(val => val.split(' ')));

关于javascript - 从数组内对象的字段中提取所有单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59361726/

相关文章:

javascript - 我的功能不打印任何东西

javascript - 如何在我自己的网站上格式化代码?

Javascript 推送不断删除第一项

c - realloc 无法从其他函数访问新大小

javascript - 触发 DIV 容器 onclick 而不是在内容中

java - 数组返回 null .. 生成随机单词

mysql - 从 1D JSON 数组中搜索/提取值

javascript - AngularJS 仅显示 JSON 数据的最后一个元素

c# - 在自定义 JsonConverter 中,如何确定 Utf8JsonReader 数字标记是小数还是长整型?

json - 如何使用jq按日期时间字段排序?