如何使用javascript在单个变量中添加多个值?

如何使用javascript在单个变量中添加多个值?,javascript,jquery,Javascript,Jquery,如何在单个变量中获得多个值,如下所示: 1, 2, 3, 4, 5 $('.icon')。单击(函数(){ var总愿望列表; $(this.toggleClass('active'); totalWishlist+=$(this.attr('data-pid'); 控制台日志(totalWishlist); }); .active{color:red;} 图标1 图标2 图标3 图标4将变量设置为字符串,并在函数外部定义它。让它全球化 var totalWishlist=”“; $('

如何在单个变量中获得多个值,如下所示:

1, 2, 3, 4, 5
$('.icon')。单击(函数(){
var总愿望列表;
$(this.toggleClass('active');
totalWishlist+=$(this.attr('data-pid');
控制台日志(totalWishlist);
});
.active{color:red;}

图标1
图标2
图标3

图标4
将变量设置为字符串,并在函数外部定义它。让它全球化

var totalWishlist=”“;
$('.icon')。单击(函数(){
totalWishlist+=$(this.attr('data-pid')+“”;
控制台日志(totalWishlist);
});

图标1
图标2
图标3

图标4
您将获得
未定义1
等。因为您没有使用值声明
totalWishlist
,所以默认情况下它是未定义的。要解决此问题,请将其定义为单击处理程序外部的空字符串:

var totalWishlist = '';
但是,使用数组并对其进行
push()
操作更有意义。这更容易修改。如果要从该数组中检索字符串,可以使用
join(',')
,如下所示:

var totalWishlist=[];
$('.icon')。单击(函数(){
totalWishlist.push($(this.data('pid'));
log(totalWishlist.join(',');
});

图标1
图标2
图标3

图标4
使用数组并将其移动到功能之外。如果只想添加一次项,请使用
包含
检查该项是否已在数组中并跳过它:

const totalWishlist=[];
$('.icon')。单击(函数(){
常量pid=$(this.attr('data-pid');
如果(!totalWishlist.includes(pid)){
总愿望列表推送(pid);
}
console.log(…totalWishlist);
});

图标1
图标2
图标3

图标4
数组正是为了这个目的而设计的。您忘记了将
totalWishlist
初始化为任何内容,因此
+=
将任何内容初始化为它都不起作用(您还应该强制将属性设置为数字)。不仅如此,OP还在单击处理程序中覆盖
totalWishlist
。此外,
var totalWishlist
应该在
$('.icon')之外。单击(function(){})
它已声明,但未初始化。它存在,但仍
未定义
。它不同于
var totalWishlist=“”
我认为OP想要串联这些值,而不是将它们相加。
像这样的多个值1、2、3、4、5对我来说似乎不是OP想要串联它们。我不需要数组,没有数组我们就做不到。使用数组可以使问题的解决方案更容易处理,而且不那么麻烦。如果您想从数组中获取字符串,只需使用
join(',')
@RohitVerma,这并不重要。您想要的是存储pid的“集合”,而数组是最好的方法。如果以后要创建字符串
1,2,3,4
,只需加入数组即可,例如..
totalWishList.join(',')
@RohitVerma您不知道如何在单个变量中存储多个值,但您知道不需要数组吗?Interesting@JeremyThille的确这是一个非常奇怪的问题,因为OP在历史上就比基本数组使用更复杂的主题提出(甚至回答)问题。这看起来像是一个共享帐户,或者是一个被非法访问的帐户。