如何用“-”替换数组中的所有未定义值?

3

我有一个类似于以下的数组:

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

需要将所有的undefined值替换为"-"。结果应该是:

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

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


零是否是一个有效值? - Nina Scholz
你有稀疏数组吗? - Nina Scholz
是的,零是一个有效的值。 - Jaybruh
9个回答

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);


3

您可以使用 Array.map 方法。

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


2
您可以对值进行映射,如果未定义则返回-

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

let result = array.map(o => o !== undefined ? o : '-');

console.log(result);


2
使用 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);


1
var newArray = array.map(function(val) {
    if (typeof val === 'undefined') {
        return '-';
    }
    return val;
});

1
 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);
            }
        }

0

尝试使用这个 -

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

0
你可以使用函数式编程的map函数:
 let array = [1, 2, undefined, undefined, 7, undefined];

 let array2 = array.map(e => e === undefined ?  e='-' :  e);

为什么是-1?这会误导那些正在寻找真正帮助的人!请提供正确的答案。 - Leigh Cheri

0

尝试:

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

"-"

这将搜索您要查找的值的索引,并用“-”替换它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接