gpt4 book ai didi

javascript - JS : Loop forces ascending sorting, 如何保持定义的顺序?

转载 作者:行者123 更新时间:2023-12-03 01:10:49 24 4
gpt4 key购买 nike

我有两个循环,一个大循环用于所有表,一个内部循环较小,用于选定的表(稍后将进行分组):

        var tables = data.tables;
ar_1 = [29, 21, 19, 27, 28];

for (var i = 12; i < tables.length; i++) {
for( var j = 0; j < ar_1.length; j++) {
if(ar_1[j] == tables[i][0]) {
div.append(
'<img src="xxx"><span>' + tables[i][1] + '</span>'
);
}
}

两个循环都工作得很好,我遇到的问题是我想保持内部数组中列出的顺序,并且输出总是强制升序排序,所以结果是 19, 21, 27, 28, 29。

如何保持数组内指定结果的顺序?

最佳答案

尝试在外循环中循环遍历 ar_1:

for (var j = 0; j < ar_1.length; j++) {
for (var i = 12; i < tables.length; i++) {
if (ar_1[j] == tables[i][0]) {
div.append(
'<img src="xxx"><span>' + tables[i][1] + '</span>'
);
}
}
}

您还可以考虑使用数组方法,它功能更强大,并且可以说更易于阅读。如果 ar_1 中的每一项在 tables 数组中都有一个匹配元素,则:

ar_1.forEach((findNum) => {
const foundTable = tables.find(([num]) => num === findNum);
div.append(
'<img src="xxx"><span>' + foundTable[1] + '</span>'
)
});

关于javascript - JS : Loop forces ascending sorting, 如何保持定义的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52217551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com