Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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:使用for循环生成对象_Javascript - Fatal编程技术网

JavaScript:使用for循环生成对象

JavaScript:使用for循环生成对象,javascript,Javascript,例如,我总共有3个数组,如下所示 var arr1 = ['123','456','789']; var arr2 = ['435','551','778']; var arr3 = ['5','7','1']; 我试图将它们存储在一个对象中以供进一步使用 var Chart = ""; for(var i = 0; i < arr1.length ;i++){ Chart = { x :

例如,我总共有3个数组,如下所示

var arr1 = ['123','456','789'];
var arr2 = ['435','551','778'];
var arr3 = ['5','7','1'];
我试图将它们存储在一个对象中以供进一步使用

       var Chart = "";
        for(var i = 0; i < arr1.length ;i++){

             Chart = {
                    x : arr1[i],
                    y : arr2[i],
                    z : arr3[i]
                };

        }
var图表=”;
对于(变量i=0;i
我的方法已经完成了这项工作,但当我控制台它并使用它时,它只返回最后一组数据

因此,只有
{arr1[2]、arr2[2]、arr3[2]}
被使用,其余的都没有


如何解决这个问题?

您在每次迭代中重新分配变量的值,而不是将其初始化为数组并将值推送到它

var arr1=['123','456','789'];
var arr2=['435','551','778'];
var arr3=['5','7','1'];
var图表=[];
对于(变量i=0;i控制台日志(图表)无法像在以下代码中那样初始化对象

var Chart = "";
它应该像下面这样

var Chart = [];
那么对象属性的赋值如下所示

for (var i = 0; i < arr1.length; i++) {
  Chart.push({
x: arr1[i],
y: arr2[i],
z: arr3[i]
  });
for(变量i=0;i
最后一段将是

var Chart = [];
  for (var i = 0; i < arr1.length; i++) {
  Chart.push({
    x: arr1[i],
    y: arr2[i],
    z: arr3[i]
  });
var图表=[];
对于(变量i=0;i
在ES6中:

var arr1 = ['123','456','789'];
var arr2 = ['435','551','778'];
var arr3 = ['5','7','1'];

arr1.map((x, i) => ({x, y: arr2[i], z: arr3[i]}))

正如前面的回答中所述,您重新分配了值,并注意如何在下面的代码中初始化对象,请尝试以下操作:

var arr1 = ['123','456','789'];
var arr2 = ['435','551','778'];
var arr3 = ['5','7','1'];

var Chart = {};
for(var i = 0; i < arr1.length ;i++){
    Chart['y'+i] = arr1[i];
    Chart['x'+i] = arr2[i];
    Chart['x'+i] = arr3[i];
}
var arr1=['123','456','789'];
var arr2=['435','551','778'];
var arr3=['5','7','1'];
var-Chart={};
对于(变量i=0;i
在ES6中通过对象分解

var arr1=['123'、'456'、'789'],
arr2=['435'、'551'、'778'],
arr3=['5'、'7'、'1'],
图表={“x”:[],“y”:[],“z”:[]};
图表={arr1,arr2,arr3};

console.log(Chart);
@anson920520:在每次迭代中,您都会使用创建的新对象重新赋值