var car = {
name: "roll_royce",
add: [
{ color: "red", location: "USA_1" },
{ color: "green", location: "USA_2" },
],
pay: { type: { name: "USD" } },
};
我想写一个这样的函数:
getCar(car, 'add.0.location') // USA_1, same as car.add[0].location
getCar(car, 'pay.type') // USD, same as car.pay.type
但我不能使用 car."string"。如何解决。 提前感谢...
答案 0 :(得分:0)
您可以使用 Array#reduce
。
var car = {
name: "roll_royce",
add: [
{ color: "red", location: "USA_1" },
{ color: "green", location: "USA_2" },
],
pay: { type: { name: "USD" } },
};
function getCar(obj, props){
return props.split('.').reduce((a, b)=>a?.[b], obj);
}
console.log(getCar(car, 'add.0.location'));
console.log(getCar(car, 'pay.type'));