有没有一种方法可以在将null连接到字符串时显示null元素?
var arr = [];
arr.push('x');
arr.push(null);
arr.push('z');
// arr = ['x', null, 'z']
var samp = 'Array elements are: ' + arr;
// Array elements are: 'x',,'z'
我需要的输出结果:
Array elements are: 'x', null,'z'
有没有一种方法可以在将null连接到字符串时显示null元素?
var arr = [];
arr.push('x');
arr.push(null);
arr.push('z');
// arr = ['x', null, 'z']
var samp = 'Array elements are: ' + arr;
// Array elements are: 'x',,'z'
我需要的输出结果:
Array elements are: 'x', null,'z'
你可以使用 Array.map
将 String
应用于参数。它非常简洁:
arr.map(String)
var arr = [];
arr.push('x');
arr.push(null);
arr.push('z');
var samp = 'Array elements are: ' + arr.map(String);
console.log(samp);
.join
方法,并且:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join
如果一个元素未定义或为空,它将被转换为空字符串。var arr = [];
arr.push('x');
arr.push(null);
arr.push('z');
const joined = arr.reduce((a, elm) => a + (a ? ',' : '') + elm);
var samp = 'Array elements are: ' + joined;
console.log(samp);
Array elements are: 'x', null,'z'
然后在连接之前检查每个元素的typeof
:
var arr = [];
arr.push('x');
arr.push(null);
arr.push('z');
const joined = arr.reduce((a, elm) => {
const quote = typeof elm === 'string' ? "'" : '';
return a + quote + (a ? ',' : '') + elm + quote;
}, '');
var samp = 'Array elements are: ' + joined;
console.log(samp);
(如果元素本身包含任何单引号,您可能也想将它们替换为\'
)
JSON.stringify
知道如何以字符串形式表示内容。如果您只是将数组转换为字符串,您几乎可以得到想要的结果:
JSON.stringify(arr)
# => ["x",null,"z"]
但是如果你自己做,就可以避免使用方括号,并多留一些空间...
arr.map(JSON.stringify).join(', ')
# => "x", null, "z"
这是一个不同寻常但有趣的需求。容易的部分是你想在最终字符串中显示 null。所以,这是我尝试过的:
function arrToStr(inputArr){ //this func will return str with null
var str=undefined;
inputArr.map(function(i){str = (str!==undefined) ? (str+", "+i) : i})
return str;
}
var arr = [];
arr.push('x');
arr.push(null);
arr.push('z');
var samp = 'Array elements are: ' + arrToStr(arr);
//samp - "Array elements are: x, null, z"
希望你明白了这里的要点?
null
,将其创建为字符串“null”,然后进行连接。null是对象的一种类型,因此您可以执行JSON.stringify(null),它将被转换为字符串。 - Sivakumar Tadisetti