我有这个数组:
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/