Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对象中未填充Javascript键_Javascript - Fatal编程技术网

对象中未填充Javascript键

对象中未填充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

我试图创建一个带有键/值的对象,但当我看到该对象时,键没有正确填充

我希望键是-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/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}, ...]

谢谢地图功能,它更干净。谢谢地图功能,它更干净。