对象中未填充Javascript键
我试图创建一个带有键/值的对象,但当我看到该对象时,键没有正确填充 我希望键是-0,1,2,3,但它显示“index”作为键对象中未填充Javascript键,javascript,Javascript,我试图创建一个带有键/值的对象,但当我看到该对象时,键没有正确填充 我希望键是-0,1,2,3,但它显示“index”作为键 > categories = ["09/07/2016 00:00","09/07/2016 00:01","09/07/2016 00:02","09/07/2016 00:03","09/07/2016 00:04"] ["09/07/2016 00:00", "09/07/2016 00:01", "09/07/2016 00:02", "09/07/2
> categories = ["09/07/2016 00:00","09/07/2016 00:01","09/07/2016 00:02","09/07/2016 00:03","09/07/2016 00:04"]
["09/07/2016 00:00", "09/07/2016 00:01", "09/07/2016 00:02", "09/07/2016 00:03", "09/07/2016 00:04"]
> rate_1 = [0.41,0.54,0.6,0.7,0.8]
[0.41, 0.54, 0.6, 0.7, 0.8]
> dict = []
[]
> categories.forEach(function(ix,index){console.log(index)
dict.push({index:rate_1[index]})
})
0
1
2
3
4
> JSON.stringify(dict)
"[{"index":0.41},{"index":0.54},{"index":0.6},{"index":0.7},{"index":0.8}]"
您可以通过将
索引
括在方括号中(ES6语法)来解决此问题:
没有这一点,index
实际上被当作一个文本,而不是变量
var类别=[“09/07/2016 00:00”、“09/07/2016 00:01”、“09/07/2016 00:02”、“09/07/2016 00:03”、“09/07/2016 00:04”];
var率_1=[0.41,0.54,0.6,0.7,0.8];
var-dict=[];
类别。forEach(功能(ix,索引){
dict.push({[index]:rate_1[index]})
});
结果=JSON.stringify(dict);
控制台日志(结果)
您可以通过将索引
括在方括号中(ES6语法)来解决此问题:
没有这一点,index
实际上被当作一个文本,而不是变量
var类别=[“09/07/2016 00:00”、“09/07/2016 00:01”、“09/07/2016 00:02”、“09/07/2016 00:03”、“09/07/2016 00:04”];
var率_1=[0.41,0.54,0.6,0.7,0.8];
var-dict=[];
类别。forEach(功能(ix,索引){
dict.push({[index]:rate_1[index]})
});
结果=JSON.stringify(dict);
控制台日志(结果)代码>键在键入时进行解释-它们不进行变量检查。如果需要动态键-首先创建对象,然后添加键/val:
var obj = {};
obj[index] = rate_1[index];
dict.push(obj)
除非您可以使用ES6语法,否则请使用@trincot的答案。键在键入时会被解释,它们不会进行变量检查。如果需要动态键-首先创建对象,然后添加键/val:
var obj = {};
obj[index] = rate_1[index];
dict.push(obj)
除非您可以使用ES6语法,否则请使用@trincot的答案。现有的解决方案是正确的,但这是一个更干净、更实用的替代方案,使用Array.prototype.map
,使用香草Javascript
var dict = rate_1.map(function(rate, idx) {
var entry = {};
entry[idx] = rate;
return entry;
});
// dict is [{0: 0.41}, {1: 0.54}, ...]
现有的解决方案是正确的,但这是一个稍微更干净、功能更强大的替代方案,使用的是Array.prototype.map
,使用的是香草Javascript
var dict = rate_1.map(function(rate, idx) {
var entry = {};
entry[idx] = rate;
return entry;
});
// dict is [{0: 0.41}, {1: 0.54}, ...]
谢谢地图功能,它更干净。谢谢地图功能,它更干净。