【问题标题】:How to replace all undefined values in an array with "-"?如何用“-”替换数组中所有未定义的值?
【发布时间】:2018-09-25 23:26:48
【问题描述】:

我有一个类似的数组:

var array = [1, 2, undefined, undefined, 7, undefined]

并且需要用"-" 替换所有undefined 值。结果应该是:

var resultArray = [1, 2, "-", "-", 7, "-"]

我认为有一个简单的解决方案,但我找不到。

【问题讨论】:

  • 已经有答案here
  • 零是有效值吗?
  • 你有稀疏数组吗?
  • 是的,零是有效值

标签: javascript arrays replace undefined array-map


【解决方案1】:

试试:

while((index = array.indexOf(undefined)) > -1){array[index] = "-";}

“-”

这将搜索您正在搜索的值的索引,并将其替换为“-”

【讨论】:

    【解决方案2】:

    您可以使用函数式编程映射函数:

     let array = [1, 2, undefined, undefined, 7, undefined];
    
     let array2 = array.map(e => e === undefined ?  e='-' :  e);
    

    【讨论】:

    • 与完成的答案相同!为什么-1?对于寻求真正帮助的人来说,这是一种误导!
    【解决方案3】:
     function SampleArray() {
                var Array = [];
                var array = [1, 2, undefined, undefined, 7, undefined];
                for (var i = 0; array.length > i; i++) {
                    var Value;
                    if (array[i] == undefined) {
                        Value = '-';
                    } else {
                        Value = array[i];
                    }
    
                    Array.push(Value);
                }
            }
    

    【讨论】:

      【解决方案4】:

      您可以检查undefined 并取'-',否则取值并使用Array#map 获取新数组。

      var array = [1, 2, undefined, undefined, 7, undefined],
          result = array.map(v => v === undefined ? '-' : v);
          
      console.log(result);

      对于稀疏数组,您需要迭代所有索引并检查值。

      var array = [1, 2, , , 7, ,],
          result = Array.from(array, v => v === undefined ? '-' : v);
          
      console.log(result);

      【讨论】:

        【解决方案5】:

        试试这个 -

        array.forEach(function(part,index,Arr){ if(!Arr[index])Arr[index]='-'})
        

        【讨论】:

          【解决方案6】:

          使用 Array.map()

          var array = [1, 2, undefined, undefined, 7, undefined];
          console.log(array);
          
          var newArray = array.map(function(v) {
            return undefined === v ? '-' : v;
          });
          
          console.log(newArray);

          【讨论】:

            【解决方案7】:
            var newArray = array.map(function(val) {
                if (typeof val === 'undefined') {
                    return '-';
                }
                return val;
            });
            

            【讨论】:

              【解决方案8】:

              你可以map这些值,如果未定义则返回-

              let array = [1, 2, undefined, undefined, 7, undefined]
              
              let result = array.map(o => o !== undefined ? o : '-');
              
              console.log(result);

              【讨论】:

                【解决方案9】:

                你可以使用Array.map

                var array = [1, 2, undefined, undefined, 7, undefined];
                var newArray = array.map(x => x !== undefined ? x : "-");
                console.log(newArray);

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2016-04-21
                  • 2018-06-26
                  • 1970-01-01
                  • 1970-01-01
                  • 2022-12-13
                  • 2018-01-05
                  • 2014-02-08
                  • 2014-04-20
                  相关资源
                  最近更新 更多