【发布时间】:2021-12-27 17:47:26
【问题描述】:
I have a function like this:
function makeSummary(people){
const myList = []
for (int i = 0; i < people.length; i++){
myList.push({
fullName: person.firstName + " " + person.lastName,
title: person.title,
})
}
return myList
}
给定一个人员列表,构造一个稍微修改过的列表版本。
有什么方法可以将在 for 循环的任何步骤中构造的对象作为参数传递?
我想模块化这个函数以便进一步重用(这只是一个例子,我的真实代码要大得多,所以在那里更有意义,但场景是一样的)。
所以,我希望有一个参数,我传递类似的东西:
{
fullName: person.firstName + " " + person.lastName,
title: person.title,
}
对于下一个函数调用,我可以通过:
{
fullName: person.firstName + " " + person.lastName,
description: person.description,
}
并且该方法应该知道这是应该在 for 循环中的每一步添加的对象。
有什么办法可以做到吗?
谢谢!
【问题讨论】:
-
进一步模块化是什么意思?究竟要做什么?
-
@charlietfl 以这样的方式修改函数,以便我可以传递类似于我作为参数呈现的对象的内容,因此该函数可以使用它,而不必在以下情况下对对象的构造进行硬编码将它们推到列表中。这更有意义吗?
-
您可以简单地将您的对象构建代码移动到辅助函数中并将其作为参数传递给
makeSummary(people, helper),现在您可以根据需要传递辅助函数 -
并非如此。您要解决的更高级别的问题是什么?您可能正在寻找的是一个类,您可以将人员对象传递到该类中并返回一个新实例该类将为全名和您可能需要的任何其他方法提供一个 getter 或)setter
-
@charlietfl 我的真实代码中的 makeSummary 方法要大得多,但除了返回的对象外,它始终以相同的方式工作,因此键和值会有所不同。所以为了解决这个问题,我将 makeSummary 方法复制粘贴到整个代码中并更改了对象,但现在我想找到一种更模块化的方法,而不需要太多重复。
标签: javascript arrays vue.js