如何在Node.js中编写一个与内置Array Join行为相同的自定义函数



function arr(a) {
let sum = "";
for (let i = 0; i < a.length; i++) {
sum += a[i] + "-";
}
console.log(sum);
}
arr(["Hello", "World", "!"]);

它正在打印"-"之后"quot;以及

  1. 您可能应该从函数返回连接的字符串,然后记录结果。

  2. 也许也可以传递一个delimeter参数,这样你就不必只使用"-";你可以用任何东西。这将更好地反映join方法。

  3. 最重要的是:检查当前索引是否小于数组的长度(-1)。如果是的话,加上delimeter。如果它等于length - 1,则不要将其相加。

function join(arr, delimeter) {
let str = '';
for (let i = 0; i < arr.length; i++) {
if (i < arr.length - 1) {
str += arr[i] + delimeter;
} else {
str += arr[i];
}
}
return str;
}
console.log(join(['Hello', 'World', '!'], '-'));
console.log(join(['We', 'Have', 'Popcorn', '!'], '  '));

我认为您只需要为最后一项添加一个条件。例如

function arr(a){
let sum= "";
for(let i=0; i<a.length; i++){
sum+= a[i] + ((i<a.length-1) ? "-" : "");
}
return sum
}
const result = arr(["Hello","World","!"]);
console.log(result)

或者它更整洁,阵列减少

const join = (arr, separator) => {
return arr.reduce((prev, current)=> prev + separator +  current)
}
const rs =join(["Hello", "World", "!"], "-")
console.log(rs)

相同的结果

"Hello-World-!" 

您可以按照进行操作

function arr(a,glue='') {
let sum = "";
let i=0;
for (i = 0; i < a.length-1; i++) {
sum += a[i] + glue;
}
sum+=a[i];
return sum;
}
console.log(arr(["Hello", "World", "!"],"-"));

只需使用三元运算符来确定渲染最后一段

function arr(a){
let sum= "";
for(let i=0; i<a.length; i++){
i === a.length-1 ? sum+=a[i] : sum+= a[i]+"-";
}
console.log(sum);
}
arr(["Hello","World","!"]);

function arr(a) {
let sum= "";
for (let i=0; i<a.length; i++) {
if (i==a.length-1) {
sum = sum + a[i];
} else {
sum = sum + a[i] + "-";
}
}
console.log(sum);
}
arr(["Hello","World","!"]);

最新更新