javascript数组赋值,怎样赋值多个?

var arr = [] 一个函数,每点击一次传进一个value,比如我点三次,分别为1,2,3

fun(value) {

arr[0] += value 

}

为什么会有undefined,我的意思是把传进来的值都放入0下面 [undeined123]
阅读 5.1k
5 个回答

处理下undefined

function fun(value) {
    arr[0] = typeof arr[0] == 'undefined' ? value.toString() : arr[0]+value.toString();
}

数组元素赋值不是简单的+

参考以下代码

fun(value) {
   arr.push(value);
   // 或者 arr[arr.length]=value;
}

arr[0]不存在,则是undefined ,传进来的是string数据‘1’,undefined+‘1’,隐式转换,把undefined转化成‘undefined’,因此最后得到undefined1,随后相当于拼接字符串

arr[0] += value

=>

arr[0] = arr[0] + value

value = 1arr[0] = undefined

你声明的arr是一个空数组,所以arr[0]的初始值是undefined。

arr[0] = undefined + "1";   // 第一次点击,字符串拼接arr[0]=undefined1
arr[0] = undefined1 + "2"    // 第二次点击,字符串拼接arr[0]=undefined12
arr[0] = undefined12 + "3"    // 第二次点击,字符串拼接arr[0]=undefined123

根据你的描述,你的fun函数应该写成:

function(value) {
arr.push(value);
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题