对javascript数组值/键进行串联

Do a concatenation on javascript array value/key

本文关键字:javascript 数组      更新时间:2023-09-26

为什么不允许串联javascript数组的值或键?

var arr = {'date': year + ", " + month};

var arr = {'to' + 'day': day};

首先,您声明的是一个对象而不是数组。

其次,你的第一个例子是可能的:

var year = 2013,
    month = 7;
var obj = {'date': year + ', ' + month };
console.log(JSON.stringify(obj));
> {"date":"2013, 7"}

但要连接一个属性,你必须采取一些不同的做法:

var day = 'Monday',
    obj = {};
obj['to' + 'day'] = day;
console.log(JSON.stringify(obj));
> {"today":"Monday"}

对象有点挑剔,因为冒号左侧的值(:)被字面解释为字符串(而不是像值一样解析)。也就是说,以下将不起作用

var day = 'Monday',
    label = 'to' + 'day';
console.log(label);
> "today"
var obj = { label: day };
console.log(obj);
> {"label":"Monday"}

请注意label是如何被解释为字符串常量而不是变量名的。

使用此:

var asoc_arr = {};
asoc_arr['to'+'day'] = day;

由于您正在创建一个新对象,您可能希望从JSON字符串开始,请对其进行所有必要的串联,然后简单地将其解析为JS对象。这里有一个简单的例子:

var year = "1990";
var month = "10";
var str = '{"date":"'+year+','+month+'"}';
var obj = JSON.parse(str);
console.log(obj);
> { date: '1990,10' }