【发布时间】:2021-04-29 21:24:16
【问题描述】:
我正在尝试遍历一个对象并获取 name 的所有键值,我正在通过以下方式进行操作:
var fakeData = {
"manufacturer": "tesla",
"cars": [
{"title": "CALI", "name": "CALI", "type": "string" },
{"title": "TEXAS", "name": "TEXAS", "type": "string" },
{"title": "NY", "name": "NY", "type": "string" }
],
"usedCars": [
{"title": "FL", "name": "FL", "type": "string" }
],
}
returnName(fakeData) {
for (key in fakeData.cars && fakeData.usedCars) {
//return name property of cars and usedCars arrays.
//fakeData is the representation of the req.body data that might
//sometimes not necessarily have either cars or usedCars
}
}
如果我这样做,它会返回 undefined。有什么方法可以在一个 for 循环中满足这些条件并获得所需的结果?
【问题讨论】:
-
您能解释一下“获取名称的所有键值”是什么意思吗?您的意思是要从汽车和二手车中获取名称值的列表吗?
-
是的,这是正确的,所以应该是 CALI, TEXAS, NY, FL @sofa_maniac
-
注意,cars 和 usedCars 是数组,不是对象
-
假设
cars和usedCars永远不会未定义,简单的[...fakeData.cars, ...fakeData.usedCars].map(car => car.title) -
如果可以是
undefined,那么就使用[...(fakeData.cars || []), ...(fakeData.usedCars || [])].map(car => car.title)
标签: javascript arrays for-loop ecmascript-6