首页 > 解决方案 > 执行映射后,每个数组的插入顺序是否都会更改

问题描述

如果我有一个数组并且我想调用 map() 到该数组。从地图返回的结果是否会与数组有不同的顺序?

const array = [1,2,3,4,5,6,7,8,9];
const mappedArray = array.map((num) => {
   return num * num;
})
console.log(mappedArray);

mappedArray 将永远是 [1,4,9,16,25,36,49,64,81] 或者它可能会更改为其他内容(不是相同的顺序)?

如果我在地图内进行 API 调用,如下所示

const mappedArray = array.map(async (num) => {
   return await api(num);
})

// remote API
function api(num) {
   return dynamoDbClient.getItem(num);
}

标签: arraystypescript

解决方案


不,map将始终按顺序遍历数组。除非在代码中的其他地方更改了数组,否则生成的数组的顺序不会改变。如果输入相同,输出将始终相同。

运行此代码 1000 次,数组每次都相同。

const array = [1,2,3,4,5,6,7,8,9];
const mappedArray = array.map((num) => {
   return num * num;
})
console.log(mappedArray);


推荐阅读