[英]Javascript - access specific part of Object conditionally
我正在尝试根据传递的参数有条件地访问 object 的特定部分。
object 的结构与此类似:
const obj = {
a: [
{ value1: "a11", value2: "a12" },
{ value1: "a21", value2: "a22" },
{ value1: "a31", value2: "a32" }
],
b: [
{ value1: "b11", value2: "b12" },
{ value1: "b21", value2: "b22" },
{ value1: "b31", value2: "b32" }
]
};
在应用程序中有一个 function 需要 a 或 b 内的值,具体取决于传递给 function 的内容:
Function:
// AorB is a string which is either "a" or "b", but could be anything else if this doesn't work
const myFunction = (AorB) => {
obj.!!!AorB!!!.map(v => {
console.log(v.value1 + v.value2)
})
}
如您所见,我目前将决定调用 A 或 B 的部分替换为 .!!AorB !!! 因为这是我遇到问题的部分。
如果将“a”或“b”作为字符串传递给 function,是否可以将 a 或 b 的数组元素加深到 map 上。
预期行为
当像这样调用 function 时: myFunction("a")
我希望控制台记录:
a11a12
a21a22
a31a32
与调用myFunction("b"()
时在 b 中指定的值相同
您可以使用数组语法来访问对象值。
const obj = { a: [{ value1: "a11", value2: "a12" }, { value1: "a21", value2: "a22" }, { value1: "a31", value2: "a32" } ], b: [{ value1: "b11", value2: "b12" }, { value1: "b21", value2: "b22" }, { value1: "b31", value2: "b32" } ] }; const myFunction = (obj, AorB) => { // use the array syntax return obj[AorB].map(v => { return v.value1 + v.value2 }) } console.log('a:', myFunction(obj, 'a')) console.log('b:', myFunction(obj, 'b'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.