繁体   English   中英

Javascript - 有条件地访问 Object 的特定部分

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM