join()函数在javascript中不起作用

时间:2018-02-24 05:38:46

标签: javascript

我尝试在我的数组中使用join()函数并尝试document.write但是 控制台说“birth.join()不是函数”

birthyear=[];

for(i=1800;i<2018;i++){
birthyear+=i
}

birth=birthyear.join();

document.write(birth);

3 个答案:

答案 0 :(得分:2)

Array.prototype.join()适用于数组并将元素插入数组,您应该调用.push()而不是+=,请阅读有关+ = here的更多信息。

在声明变量之前始终使用var,否则最终会声明全局变量。

&#13;
&#13;
var birthyear = [];

for (i = 1800; i < 2018; i++) {
  birthyear.push(i);
}

var birth = birthyear.join(", ");

document.write(birth);
&#13;
&#13;
&#13;

答案 1 :(得分:1)

我的代码是你没有将数据附加到数组你正在向数组变量添加数据错误

  第一种方式

birthyear=[]; 
for(i=1800;i<2018;i++)
{ 
    birthyear.push(i); 
} 
birth=birthyear.join(); 
document.write(birth);
     第二种方式

birthyear=[];
k=0;
for(i=1800;i<2018;i++){
birthyear[k++]=i;
}

birth=birthyear.join();

document.write(birth);

答案 2 :(得分:0)

您不能将.push()应用于基本类型,而应用于数组类型(对象类型)。 您将var birthyear = [];声明为数组,但在循环体中,您将其用作基元:birthyear+=i;

这是一个修订版:

&#13;
&#13;
var birthyear=[];

for(let i=1800;i<2018;i++){
    birthyear[i]=i;  
   // careful here:   birthyear[i] += i; won't work 
   // since birthyear[i] is NaN
}

var birth = birthyear.join("\n");

document.write(birth);
&#13;
&#13;
&#13;

快乐的编码! ^ _ ^