当前位置: 首页 > 知识库问答 >
问题:

如何将多个对象属性作为参数传递?[副本]

邹嘉石
2023-03-14

让我们以这个对象为例:

var obj = {a: {b: {c: 'result'}}}

我知道我可以得到c的值,这样做:

console.log(obj.a.b.c) // 'result'

或者这个:

console.log(obj['a']['b']['c'])

但是我如何在函数中通过obj和列作为参数来获得c的值呢?

function func(obj, attributes) {
   return obj[attributes]
}

console.log(func(obj, a.b.c)) // how to make this work
console.log(func(obj, ['a']['b']['c'])) // or this

共有1个答案

孙志
2023-03-14

您可以将属性作为字符串传递,就像'a.b.c'一样。然后将其拆分并使用reduce获得所需的值。

在下面测试它。

var obj = {a: {b: {c: 'result'}}}
function func(obj, attributes) {
  return attributes.split('.').reduce((x, a) => x[a], obj);
}

console.log(func(obj, 'a.b.c'));
console.log(func(obj, 'a.b'));
 类似资料:
  • 我试图学习功能性Kotlin,并编写了以下测试代码: 在REPL中,我可以成功调用“findBorrowerX”: 但是我如何拨打“findBorrowerX2”的电话: 并将迭代的借用器x传递给getName?? 这看起来有关联,但我不确定: Kotlin:如何将一个函数作为参数传递给另一个? 提前感谢您对此的帮助! 编辑: 下面是我想做的等效Scala代码: 也许这在科特林是不可能的?

  • 在下面的代码中,我希望将'races.class'作为参数传递给方法'get allraces()'。我该怎么做?

  • 问题内容: 我该怎么做-在swift中传递两个NSStringDrawing选项作为函数参数: 问题答案: 编辑:在 Swift 3.0中 : 编辑: 这就是您将在Swift 2.0中使用选项枚举的方式 : 编辑: 此问题 已在iOS 8.3 SDK Beta 1(12F5027d)中得到解决 : 修改后的[struct] 从: 至: 您现在可以编写: 经过一番研究和@Anton Tcholako

  • 问题内容: 我正在考虑我的应用程序的解决方案。这是一种情况:我有一个类,该类的方法将ObjectA作为输入参数并调用几个小方法,这些方法中的每个方法都需要ObjectA的某些部分(它们不重叠,即需求和,需求等等)。 …)现在的问题是:鉴于一般的良好代码实践和性能,将ObjectA传递给这些方法中的每一个方法更好,以便它们可以自己提取所需的值,还是仅传递它们的值更好?我的意思是: 要么 感谢您的任何

  • 问题内容: 我想将我域的任意对象(例如Person)作为参数传递给.jrxml。 在.jrxml上执行以下操作: 这样的事情可能吗?在哪里可以找到更复杂的教程,这些教程不仅显示传递java.lang.String的内容,还显示更多的内容? 谢谢 问题答案: 是的,您可以传递任何Java对象,但应确保将其导入JRXML。 在jasperReport标记内。您可以使用标记,例如: 但是,您可以使用对象

  • 问题内容: 我有一个属性指令,其限制如下: 我需要传递两个属性;一个数字和一个函数/回调,使用对象在指令中访问它们。 如果指令是元素指令,那么我可以限制为: 但是,出于某种原因,我不再赘述,我需要将该指令作为属性指令。 如何将多个属性传递到属性指令中? 问题答案: 该指令可以访问在同一元素上定义的任何属性,即使该指令本身不是该元素也是如此。 模板: 指示: 如果attribute的值将被硬编码,则