Javascript 数组排序和值同时更改
我在下面有一个数组,每个数组中的第一个数字表示顺序。 我想做的是,每当我更改顺序时,它都会引用数组并将其重新索引为2、3、4、5Javascript 数组排序和值同时更改,javascript,arrays,algorithm,sorting,indexing,Javascript,Arrays,Algorithm,Sorting,Indexing,我在下面有一个数组,每个数组中的第一个数字表示顺序。 我想做的是,每当我更改顺序时,它都会引用数组并将其重新索引为2、3、4、5 const payments = [ [2, paymentName1, '5%'], [3, paymentName2, '5%'], [4, paymentName3, '5%'], [5, paymentName4, '5%'] ]; 例如,如果我将第一个数组的顺序从2更改为6,则数组将变为下面的数组 const payme
const payments = [
[2, paymentName1, '5%'],
[3, paymentName2, '5%'],
[4, paymentName3, '5%'],
[5, paymentName4, '5%']
];
例如,如果我将第一个数组的顺序从2更改为6,则数组将变为下面的数组
const payments = [
[2, paymentName2, '5%'],
[3, paymentName3, '5%'],
[4, paymentName4, '5%'],
[5, paymentName1, '5%'],
];
我目前所做的是对它进行排序,并让for循环重新排序。如果可能的话,我想在一个循环中完成。请帮我写这个算法
提前谢谢
编辑:
这是我目前的职能。还有更好的办法吗?
谢谢 排序后,只需在数组上循环并递增地分配新的顺序值。这里没有更好的
const付款=[
[2,“paymentName1”,“5%”,
[3,“paymentName2”,“5%”,
[4,“paymentName3”,“5%”,
[5,“paymentName4”,“5%”
];
函数setOrder(索引,newOrder){
付款[指数][0]=新订单;
付款.排序(([a],[b])=>a-b);
对于(i=0;i 控制台日志(付款)代码>排序后,只需在数组上循环并递增地分配新的顺序值。这里没有更好的
const付款=[
[2,“paymentName1”,“5%”,
[3,“paymentName2”,“5%”,
[4,“paymentName3”,“5%”,
[5,“paymentName4”,“5%”
];
函数setOrder(索引,newOrder){
付款[指数][0]=新订单;
付款.排序(([a],[b])=>a-b);
对于(i=0;i 控制台日志(付款)代码>显示您的努力和您的困境。因此,这不是一项只获取代码的服务written@risingStark我添加了我当前的工作为什么订单应该以2开头?我会理解1或0,但2?@trincot订单为0和1的代码不在支付数组中。您得到的代码可以满足您的要求,但您可以删除parseInt
调用,只需说index+2
。然而,这听起来很像一个XY问题。payments
中的项目最有可能是对象,而不是数组,如果您稍微重新考虑一下设计模式,则最有可能不需要对索引进行排序或更改。展示您的努力和您的困境。因此,这不是一项只获取代码的服务written@risingStark我添加了我当前的工作为什么订单应该以2开头?我会理解1或0,但2?@trincot订单为0和1的代码不在支付数组中。您得到的代码可以满足您的要求,但您可以删除parseInt
调用,只需说index+2
。然而,这听起来很像一个XY问题。payments
中的项目很可能应该是对象,而不是数组,如果您稍微重新考虑一下设计模式,则很可能不需要对索引进行排序或更改。
payments.sort((a, b) => a[0] - b[0]);
for (const index in payments) {
payments[index][0] = parseInt(index) + 2;
}