给一个数字, 根据里面的某个字段进行排序

/**
 //给一个数字, 根据里面的某个字段进行排序
 //调用的时候有两个地方可以处理回调
 //一个是 saveOneItem 函数 可以在处理的过程中单存每一行 如果是 json 整存的话 这个就不要用
 //如果是整存的话 用最后 then(res=>{}) 去处理 resolve 后的内容 是个 完整的array *
 * @param index 当前位置
 * @param array 完整的未排序的
 * @param arg   "up","down",根据这两个命令进行排序的安排
 * @param columnName 排序参考字段的名称 传一个字符串
 * @param saveOneItem 回调函数, 每次处理完一次 在循环内部会返回一个单条 可以在外部进行存储操作
 * @returns {Promise<unknown>}
 */
function reSort(index, array, arg, columnName, saveOneItem) {
  return new Promise(resolve => {
    if (index === 0 && arg === "up") {
      return;
    }
    if (index === array.length - 1 && arg === "down") {
      return;
    }

    if (arg === "up") {
      let temp = array[index - 1];
      array[index - 1] = array[index];
      array[index] = temp;
    }
    if (arg === "down") {
      let temp = array[index + 1];
      array[index + 1] = array[index];
      array[index] = temp;
    }
    for (let idx in array) {
      array[idx][columnName] = parseInt(idx);
    }
    let forLoop = async (array) => {
      for (let idx in array) {
        let item = {};
        item = Object.assign(item, array[idx]);
        await saveOneItem(item);
      }
    };
    forLoop(array).then(res => {
      resolve(array);
    });
  });
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值