使用Javascript根据另一个数组对齐一个数组

时间:2019-03-10 00:22:12

标签: javascript arrays string algorithm data-structures

给出Header数组,并使所有其他数组成为相同格式的header数组:

HEADER     ["", "", "a", "b", "", "c", "d","",""]
1.           ["", "", "1", "2", "", "3", "4"]     ==== CORRECT FORMAT
2.           ["1","2","", "3", "4","",""]         ==== WRONG FORMAT
3.           ["", "", "", "", "1", "2", "", "3", "4"] = WRONG FORMAT

Output array :
1.           ["", "", "1", "2", "", "3", "4"]
2.           ["", "", "1", "2", "", "3", "4"]
3.           ["", "", "1", "2", "", "3", "4"]

标题和输入数组的长度相同。但是输出数组的长度必须一直到标题数组元素的最后。

我无法使用以下算法修复所有类型的输入:

  alignArray(arr1, arr2) {
    let arr3 = [];
    let arr4 = _.compact(arr2);
    let count = 0;
    _.map(arr1, function (num, index) {
      if (_.isString(num) && !(_.isEmpty(num))) {
        if (arr4[count])
          arr3.push(arr4[count]);
        else
          arr3.push("");
        count++;
      } else {
        arr3.push("");
      }
    });
    return arr3;
  }

1 个答案:

答案 0 :(得分:1)

一种方法是将第一个输入数组视为一个队列,每当WHERE account_id LIKE '00000001%' 有一个值时就使项目出队。根据您的更新,我在输出数组的末尾修剪了空字符串。

b