javascript - 在 Angularjs 中执行 foreach 循环时如何保持数组顺序

标签 javascript arrays angularjs foreach

当我执行 foreach 循环时,数组的顺序总是会改变。如何保持数组的顺序。

var array1 = [{id:1, name:'foo'},{id:2, name:'bar'},{id:3, name:'lol'}]

在我执行foreach并将其输出到一个新数组后,顺序有时会改变

var array2 = [];

angular.forEach(array1, function(post) {
  //for brevity i'll just keep it simple
   var sample = {id:post.id, name:post.name};
   array2.push(sample);
});

//OUTPUT
var array2 = [{id:3, name:'lol'},{id:1, name:'foo'},{id:2, name:'bar'}]

我的问题是如何在不更改顺序的情况下进行迭代。

最佳答案

迭代数组保证在 order 中.字典不是这样。如果你想创建一个新数组,你可以简单地做这样的事情:

var array2 = array1.map(function(post) {
    return {id: post.id, name: post.name};
});

关于javascript - 在 Angularjs 中执行 foreach 循环时如何保持数组顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33340045/

相关文章:

javascript - 最低和最高的数字是多少

javascript - d3 v5 轴过渡

arrays - 如何找到包含尽可能多关键字的数组字段的文档?

c++ - 将字符数组中的字符连接成一个整数

javascript - AngularJS在选择后过滤剩余的下拉选项

javascript - Owl Carousel 仅在包含部分焦点时自动播放

具有特定语言环境的 Javascript 日期解析

javascript - {"errors": ["Invalid image URL"]} with aviary integration

java - 我如何在 java 的另一个类中从 java set<String> 获取返回值

javascript - 如何在 JavaScript (AngularJS) 中使用 JodaTime