【问题标题】:Execute function multiple times replacing part of argument sequentially多次执行函数,依次替换部分参数
【发布时间】:2018-05-04 01:49:49
【问题描述】:

我有一个方法(exampleObj.method),它接受一个对象和一个函数的参数。如下所示:

exampleObj.method({
        name1: 'string1',
        name2: 'string2',
        name3: 'string3',
        name4: {
            array1: ['item1a', 'item1b', 'item1c'],
            array2: ['item2a']
        },
        name5: exampleObj.method2
    },
    function exampleFunc(arg1, arg2) {
        // function logic here
    }
};

我想要实现的是多次执行该方法,每次将array1替换为arrayCollection变量中的不同数组。

var arrayCollection = [
    ['item1d', 'item1e', 'item1f'],
    ['item1g', 'item1h', 'item1i'],
    ['item1j', 'item1k', 'item1l']
];

我知道我可以遍历 arrayCollection 数组每次执行该方法,或者使用 forEach 来实现相同的目的。我正在努力解决的是每次执行该方法时都替换 array1 的值。

当我搜索答案时,似乎 array.map 可能是一个选项。我不确定如何使用它来更改特定的 array1 值。

任何建议将不胜感激!

【问题讨论】:

  • 迭代arrayCollection时遇到了什么问题?在简单的 for 循环的情况下,将 array1 属性设置为 arrayCollection[i] 应该可以工作。

标签: javascript arrays function methods


【解决方案1】:
for(const array1 of arrayCollection)
  exampleObj.method({
        name1: 'string1',
        name2: 'string2',
        name3: 'string3',
        name4: {
            array1,
            array2: ['item2a']
        },
        name5: exampleObj.method2
    },
    function exampleFunc(arg1, arg2) {
        // function logic here
    }
  });

【讨论】:

  • 非常感谢您的快速回复!我认为最后一行有一个额外的花括号,但我没有它就实现了它,它工作得很好!我已尝试为您 +1,但目前没有足够的声誉。
猜你喜欢
  • 2014-09-08
  • 1970-01-01
  • 1970-01-01
  • 2019-06-29
  • 2013-02-25
  • 1970-01-01
  • 1970-01-01
  • 2010-09-30
  • 1970-01-01
相关资源
最近更新 更多