将JavaScript Array.prototype.map与作用域变量一起使用是否不好?

4平方米

我知道这map()是要迭代列表,在每个成员上运行一个函数,然后返回(或不返回)一个值作为列表项。但是,如果我以与我相同的方式使用它,该forEach()怎么办?

例子:

var stuff = [1, 2, 3];

var newStuff = {};
var moreStuff = [];

stuff.forEach(function(value, key){
    newStuff[value] = {'value' : value};
    moreStuff.push({'other_stuff': value});
});

$('body').append('<div>1. ' + JSON.stringify(newStuff) + '/' + JSON.stringify(moreStuff) + '</div>');

//vs.

newStuff = {};
moreStuff = [];

stuff.map(function(value, key){
    newStuff[value] = {'value' : value};
    moreStuff.push({'other_stuff': value});
});

$('body').append('<div>2. ' + JSON.stringify(newStuff) + '/' + JSON.stringify(moreStuff) + '</div>');

结果...

1. {"1":{"value":1},"2":{"value":2},"3":{"value":3}}/[{"other_stuff":1},{"other_stuff":2},{"other_stuff":3}]
2. {"1":{"value":1},"2":{"value":2},"3":{"value":3}}/[{"other_stuff":1},{"other_stuff":2},{"other_stuff":3}]

https://jsfiddle.net/0n7ynvmo/

我很确定,异步注意事项是相同的(并且可能使这个示例失败),结果是相同的,但是为了讨论最佳实践,一种方式与另一种方式的弊端是什么?map()方法中更改先前作用域变量而不实际返回任何内容是否滥用方法?正确的答案是否只是裁量问题?

tyme合资公司

没有太多缺点-除了forEach您不返回新列表之外。但是,根据您的情况,您需要一个新列表,因此请使用.map

var newStuff = {};

moreStuff = stuff.map(function(value, key){
    newStuff[value] = {'value' : value};
    return {'other_stuff': value};
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将 Array.prototype.filter 与多个逻辑 OR || 一起使用 表达?

来自分类Dev

如何将Array.prototype.some()与异步函数一起使用?

来自分类Javascript

JavaScript“ new Array(n)”和“ Array.prototype.map”怪异

来自分类Dev

将array_walk与mysqli_real_escape_string一起使用是不好的做法吗?

来自分类Dev

在Javascript中使用Array.prototype.map()时删除项目

来自分类Dev

javascript,Array.prototype.map()。索引未定义

来自分类Javascript

PHP是否等效于JavaScript的Array.prototype.some()函数

来自分类Dev

JavaScript:是否可以替换Array.prototype.indexOf之类的函数?

来自分类Dev

Javascript测验-使用Array.prototype以随机顺序显示选择

来自分类Dev

使用Array.prototype.map时将变量名称分配为对象属性

来自分类Dev

了解Array.prototype.map

来自分类Dev

Array.prototype.map()和Array.prototype.forEach()

来自分类Dev

Array.from与Array.prototype.map

来自分类Dev

JavaScript Array.prototype.fill:参数的含义

来自分类Dev

JavaScript Array.prototype.filter意外输出

来自分类Dev

Javascript:Array.prototype.find()的替代方法?

来自分类Dev

如何使用 React.js 将 2D 数组传递到 array.prototype.map()

来自分类Dev

是否有一个与javascript的Array.prototype.every方法等效的红宝石?

来自分类Dev

Javascript Prototype 链的副作用

来自分类Dev

如果不返回Array.prototype.map()是否正确使用

来自分类Dev

Array Prototype 将包含在 Array 的 List 中

来自分类Dev

Array.prototype.map()无法正常工作

来自分类Dev

性能:findIndex与Array.prototype.map

来自分类Dev

Javascript ES6 Array.prototype.map() 和 Object.assign() 用于单行

来自分类Dev

JavaScript中对象的Array.prototype.map()等效项是什么

来自分类Dev

PowerShell 中是否有类似于 JavaScript 的 Array.prototype.some() 的语法?

来自分类Dev

Javascript-Array.prototype.forEach()-三个参数是否必要?

来自分类Dev

在ngIf中使用array.prototype.some

来自分类Javascript

如何使用Array.prototype.filter与异步?

Related 相关文章

  1. 1

    如何将 Array.prototype.filter 与多个逻辑 OR || 一起使用 表达?

  2. 2

    如何将Array.prototype.some()与异步函数一起使用?

  3. 3

    JavaScript“ new Array(n)”和“ Array.prototype.map”怪异

  4. 4

    将array_walk与mysqli_real_escape_string一起使用是不好的做法吗?

  5. 5

    在Javascript中使用Array.prototype.map()时删除项目

  6. 6

    javascript,Array.prototype.map()。索引未定义

  7. 7

    PHP是否等效于JavaScript的Array.prototype.some()函数

  8. 8

    JavaScript:是否可以替换Array.prototype.indexOf之类的函数?

  9. 9

    Javascript测验-使用Array.prototype以随机顺序显示选择

  10. 10

    使用Array.prototype.map时将变量名称分配为对象属性

  11. 11

    了解Array.prototype.map

  12. 12

    Array.prototype.map()和Array.prototype.forEach()

  13. 13

    Array.from与Array.prototype.map

  14. 14

    JavaScript Array.prototype.fill:参数的含义

  15. 15

    JavaScript Array.prototype.filter意外输出

  16. 16

    Javascript:Array.prototype.find()的替代方法?

  17. 17

    如何使用 React.js 将 2D 数组传递到 array.prototype.map()

  18. 18

    是否有一个与javascript的Array.prototype.every方法等效的红宝石?

  19. 19

    Javascript Prototype 链的副作用

  20. 20

    如果不返回Array.prototype.map()是否正确使用

  21. 21

    Array Prototype 将包含在 Array 的 List 中

  22. 22

    Array.prototype.map()无法正常工作

  23. 23

    性能:findIndex与Array.prototype.map

  24. 24

    Javascript ES6 Array.prototype.map() 和 Object.assign() 用于单行

  25. 25

    JavaScript中对象的Array.prototype.map()等效项是什么

  26. 26

    PowerShell 中是否有类似于 JavaScript 的 Array.prototype.some() 的语法?

  27. 27

    Javascript-Array.prototype.forEach()-三个参数是否必要?

  28. 28

    在ngIf中使用array.prototype.some

  29. 29

    如何使用Array.prototype.filter与异步?

热门标签

归档