Javascript 将数组中的特定对象值合并到分离的数组中
我有这么多人Javascript 将数组中的特定对象值合并到分离的数组中,javascript,Javascript,我有这么多人 personsList = [ {cities: ['A', 'B', 'C']}, {cities: ['A', 'B', 'C']}, {cities: ['A', 'B', 'C']}, {cities: ['A', 'B', 'C', 'D']} ] 在里面的每个对象中,除了城市之外还有更多的细节,但我想用里面的所有城市制作一个数组-唯一。因此,结果将是 ['A','B','C','D'] 我试着做一些类似的事情 const allCities = per
personsList = [
{cities: ['A', 'B', 'C']},
{cities: ['A', 'B', 'C']},
{cities: ['A', 'B', 'C']},
{cities: ['A', 'B', 'C', 'D']}
]
在里面的每个对象中,除了城市
之外还有更多的细节,但我想用里面的所有城市制作一个数组-唯一。因此,结果将是
['A','B','C','D']
我试着做一些类似的事情
const allCities = personsList.map(p => p.cities)
但是我得到了一个数组,对于这个数组,最好的方法是什么?谢谢。您可以使用
var personsList=[
{城市:['A','B','C']},
{城市:['A','B','C']},
{城市:['A','B','C']},
{城市:['A','B','C','D']}
]
//城市将拥有所有具有副本的城市
const allCities=personsList.reduce((a,c)=>[…a,…c.cities]);
//从阵列创建集合-删除重复项,然后从集合中重新创建阵列
console.log(Array.from)(新集合(allCities))代码>您可以使用
var personsList=[
{城市:['A','B','C']},
{城市:['A','B','C']},
{城市:['A','B','C']},
{城市:['A','B','C','D']}
]
//城市将拥有所有具有副本的城市
const allCities=personsList.reduce((a,c)=>[…a,…c.cities]);
//从阵列创建集合-删除重复项,然后从集合中重新创建阵列
console.log(Array.from)(新集合(allCities))代码>您可以直接使用获取唯一值
var personlist=[{城市:['A','B','C']},{城市:['A','B','C']},{城市:['A','B','C']},{城市:['A','B','C','D']},
unique=Array.from(
减少(
(s,{cities}=>cities.reduce((t,c)=>t.add(c,s),
新集
)
);
console.log(唯一)代码>您可以直接使用获取唯一值
var personlist=[{城市:['A','B','C']},{城市:['A','B','C']},{城市:['A','B','C']},{城市:['A','B','C','D']},
unique=Array.from(
减少(
(s,{cities}=>cities.reduce((t,c)=>t.add(c,s),
新集
)
);
console.log(唯一)
您可以数组#映射所有城市,然后将它们合并为一个数组。然后使用Set
可以获得唯一的城市
const personlist=[{城市:['A','B','C']},{城市:['A','B','C']},{城市:['A','B','C']},{城市:['A','B','C','D']},
uniqueCity=Array.from(新集合([].concat(…personsList.map(({cities}=>cities)));
控制台日志(唯一性)
您可以数组#映射所有城市,然后将它们合并为一个数组。然后使用Set
可以获得唯一的城市
const personlist=[{城市:['A','B','C']},{城市:['A','B','C']},{城市:['A','B','C']},{城市:['A','B','C','D']},
uniqueCity=Array.from(新集合([].concat(…personsList.map(({cities}=>cities)));
控制台日志(唯一性)代码>我认为这就是您正在寻找的效果,通过使用set,您可以保证只有唯一的元素
let personsList=[
{城市:['A','B','C']},
{城市:['A','B','C']},
{城市:['A','B','C']},
{城市:['A','B','C','D']}
]
const allCities=personsList.reduce((acc,e)=>{
e、 城市地图(x=>{
附件增补(x)
})
返回acc
},新集合())
console.log(Array.from(allCities))
我想这就是您想要的效果,通过使用set,您可以保证只有唯一的元素
let personsList=[
{城市:['A','B','C']},
{城市:['A','B','C']},
{城市:['A','B','C']},
{城市:['A','B','C','D']}
]
const allCities=personsList.reduce((acc,e)=>{
e、 城市地图(x=>{
附件增补(x)
})
返回acc
},新集合())
console.log(Array.from(allCities))
const personsList=[
{城市:['A','B','C']},
{城市:['A','B','C']},
{城市:['A','B','C']},
{城市:['A','B','C','D']}
];
constAllCities=[…新集合([].concat(…personsList.map(({cities}=>cities)))];
控制台日志(所有城市)代码>
const personsList=[
{城市:['A','B','C']},
{城市:['A','B','C']},
{城市:['A','B','C']},
{城市:['A','B','C','D']}
];
constAllCities=[…新集合([].concat(…personsList.map(({cities}=>cities)))];
控制台日志(所有城市)
p.cities也是数组内部映射函数,然后使用filterp.cities也是数组内部映射函数,然后使用filtervar
在技术上不受欢迎,但我肯定认为在所有现代JavaScript中都应该避免它var
在技术上不受欢迎,但我绝对认为在所有现代Javascript中都应该避免这种情况。谢谢@Hassan的回复,我如何在每个城市上运行trim()
?然后您可以使用array\map
<代码>uniqueCity.map(city=>city.trim())
但是我会在最后的ArrayTanks中在A
和A
之间有重复,对于回复@Hassan,我如何在每个城市上运行trim()
?然后你可以使用array#map
<代码>uniqueCity.map(city=>city.trim())
但是在最后一个数组中,我将在A
和A
之间有一个副本