Why concatenation on values or keys of a javascript array is not allowed?
var arr = {'date': year + ", " + month};
Or
var arr = {'to' + 'day': day};
Why concatenation on values or keys of a javascript array is not allowed?
var arr = {'date': year + ", " + month};
Or
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' }