代码之家  ›  专栏  ›  技术社区  ›  step

自定义索引[重复]时javascript连接错误

  •  1
  • step  · 技术社区  · 8 年前

    这个问题已经有了答案:

    我有这个阵列:

    [10: "AAA", 30: "BBB", 50: "CCC", 60: "DDD", 80: "EEE", 81: "FFF", 82: "GGG", 83: "HHH"]
    

    使用命令后:

    myarray.join(“”)。

    它将返回多个重复的管道。功能 join 表示存在索引为0-10、11-29等的数组,如: [empty × 10, "AAA", empty × 19, "BBB", empty × 19, "CCC", empty × 9, "DDD", empty × 19, "EEE", "FFF", "GGG", "HHH"]

    结果是:

    |||||||||| AAA级|||||||||||| |||||||| BBB公司||||||||||||||| ||||| CCC_____DDD||||||| ||||||||||||| eee fff ggg hh

    但预期结果是:

    AAA BBB CCC DDD EEE FFF GGG HHH

    如何加入自定义索引数组?

    3 回复  |  直到 8 年前
        1
  •  2
  •   kiddorails    8 年前

    filter 空白或未定义的条目,然后正常加入。

    myarray = [];
    myarray[10] = 'AAA'; myarray[30] = 'BBB'    
    result = myarray.filter(x => x != '' && x != undefined).join('|')
    console.log(result)

    编辑 以下内容: 对于这种特殊情况, 滤波器 可以简化为:

    result = myarray.filter(x => x).join('|')
    
        2
  •  1
  •   Nina Scholz    8 年前

    您可以使用返回 true 并加入结果。

    var array = [],
        result;
    
    array[10] = "AAA";
    array[30] = "BBB";
    array[50] = "CCC";
    array[60] = "DDD";
    array[80] = "EEE";
    array[81] = "FFF";
    array[82] = "GGG";
    array[83] = "HHH";
    result = array.filter(_ => true).join('|');
        
    console.log(result);
        3
  •  0
  •   Nikhil Aggarwal    8 年前

    使用 Array.filter

    let arr = [];
    arr[10] = "AAA", arr[30] = "BBB", arr[50] = "CCC", arr[60] = "DDD", arr[80] = "EEE", arr[81] = "FFF", arr[82] = "GGG", arr[83] = "HHH";
    
    let result = arr.filter(v => !!v).join('|');
    console.log(result);