我正在试着解一个很难的计算,但是我哪儿也解不出来。有人能帮帮我吗?
这里有一个简单的例子。
const filterCityBy = "NY";
const data = [
{ name: "Harry, age: 45, city: "NY" },
{ name: "Mike, age: 36, city: "CA" }
]
const filteredData = data.filter(x = x.city === filterCityBy);
output = [ { name: "Harry, age: 45 } ]
字符串
这是自我解释。我试图过滤data
与值filterCityBy
和获得所需的output
但我的要求如下
const filterCityBy = "NY";
const data = [
{ name: "Harry, age: 45, totalCities: [{ city: "NY"}]},
{ name: "Mike, age: 36, totalCities: [{ city: "NY"}, {city: "CA"} }] }
]
output = [ { name: "Harry, age: 45 }, { name: "Mike, age: 36 } ]
型
我如何才能实现所需的输出。Harry和Mike在他们的totalCities
数组中都有城市作为NY
。一旦城市出现在他们的totalCities
数组中,我就只需要他们的name
和age
。
有人可以帮助如何得到这个。
4条答案
按热度按时间thigvfpy1#
您可以过滤数组并Map结果而不使用
totalCities
。个字符
nkhmeac62#
将合并
filter()
与some()
结合,检查totalCities
中的 some 是否与filterCityBy
匹配。然后使用
map()
只得到name
和age
键,通过使用解构赋值(...r
)删除totalCities
:字符串
型
u91tlkcl3#
检查你的示例代码和结果。一旦你修复了代码,
filter
方法本身不会给予那个结果。你还需要map
方法,就像其他人已经指出的那样。这里是另一种方法:字符串
mklgxw1f4#
我会避免Map到没有
totalCities
的对象。只是不要在过滤数组中使用totalCities
。此外,Map是否有助于内存优化也是值得怀疑的。此外,解构可能意味着更冗长和复杂的语法。字符串
的数据