【发布时间】:2020-08-03 16:23:22
【问题描述】:
我正在尝试将相同的函数应用于具有不同参数的相同数组。 我可以用不同的参数一个一个地调用这个函数,但是用一种更优雅的方式来做会很棒。就像映射参数数组一样。
目前这是我的代码。
const array = [
{
key: '1234',
title: 'Column 1'
},
{
key: '5678',
title: 'Column 2'
},
{
key: '9101',
title: 'Column 3'
}
]
const renderFn1 = (props) => <Component1 {...props} />
const renderFn2 = (props) => <Component2 {...props} />
const addRender = (columns, key, fn) => {
return columns.map(col => {
if (col.key === key) {
col.render = fn
}
return col
})
}
const newColumns = addRender(columns, '1234', renderFn1)
const newColumns2 = addRender(newColumns, '9101', renderFn2)
而不是这个链:
const newColumns = addRender(columns, '1234', renderFn1)
const newColumns2 = addRender(newColumns, '9101', renderFn2)
如何将正确的函数应用于数组中关于匹配键的正确对象。
我应该同时映射超过 2/3 的数组吗?
谢谢
【问题讨论】:
-
“最优雅”是一个需要意见的价值判断,这对于 Stack Overflow 来说是特别离题的。你可以考虑改写。
-
将函数名添加到
const array,然后用columns = copy(array); for () {addRender(columns, arrayEl.key, arrayEl.renderFn)循环你的array -
当@Justinas 评论时,我正要问:为什么这些函数是在以后添加而不是在首先创建数组时添加的,like this(但可能是不完全相同的函数)?
-
@T.J.Crowder 因为“列”是从另一个文件导入的,并且添加的组件(例如
)包含一个 OnClick 事件,该事件调用需要在我的 main 中定义的函数组件。
标签: javascript arrays reactjs