如何从字符串变量定义对象字段名称><

时间:2021-07-18 03:29:04

标签: javascript

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"。如何解决。 提前感谢...

1 个答案:

答案 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'));

相关问题