gpt4 book ai didi

javascript - JavaScript 数组是否有类似于 forEach 的可链接方法?

转载 作者:行者123 更新时间:2023-11-28 15:39:26 25 4
gpt4 key购买 nike

在一系列数组操作方法中,我想更改数组中每个项目的属性。

每种可用的方法在这样使用时都会出现问题:

  • Array.prototype.forEach 不返回数组
  • Array.prototype.map 要求返回每个项目
  • Array.prototype.filter 要求为每个项目返回“true”值

Array是否有一个方法可以操作数组中的每个项目,并返回数组?

我已经求助于使用 mapfilter,但这感觉像是一种没有必要的解决方法。

一个人为的例子:

var items = [
{ name: 'Smith' },
{ name: 'Jones' },
{ name: 'Simpson' }
];

过滤器:

return items.filter(function(item) {
item.fullname = 'Professor ' + item.name;
return true;
});

map :

return items.map(function(item) {
item.fullname = 'Professor ' + item.name;
return item;
});

对于每个:

items.forEach(function(item) {
item.fullname = 'Professor ' + item.name;
});

return items;

??:

return items.someMethod(function(item) {
item.fullname = 'Professor ' + item.name;
});

最佳答案

不,没有这样的方法。不过,常见的辅助库( UnderscorejQueryPrototype 、...)确实有返回数组的 each 迭代方法。

forEach 方法不会返回原始数组,因为它不是为了函数链接而创建的,而是为了执行副作用。

map 方法是这里选择的工具。它来自函数式编程,其目的是创建一个由转换后的对象组成的新数组,该数组自然会从函数中返回。通过改变你的对象而不是创建新的对象,你忽略了这个范例,但是当你返回(变异的)对象时你仍然可以使用它。

关于javascript - JavaScript 数组是否有类似于 forEach 的可链接方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24390368/

25 4 0
文章推荐: html - 添加什么以防止我的 内容随着浏览器大小而缩小?