Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.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_Arrays - Fatal编程技术网

从数组列表更改为对象javascript

从数组列表更改为对象javascript,javascript,arrays,Javascript,Arrays,我的代码有一个问题,当我增加数组中的元素数时,它只运行最后添加的3个元素,而不是完整的列表,我不知道代码中出了什么问题。请帮忙 var数组=[ [“制造”,“福特”], [‘车型’、‘野马’], [‘年份’、‘1964’], [“制造”、“本田”], ['model','CRV'], [‘年份’、‘2000’] ]; 函数fromListToObject(数组){ var obj=Object.create(null);//我的对象的空容器 对于(vari=0;i

我的代码有一个问题,当我增加数组中的元素数时,它只运行最后添加的3个元素,而不是完整的列表,我不知道代码中出了什么问题。请帮忙

var数组=[
[“制造”,“福特”],
[‘车型’、‘野马’],
[‘年份’、‘1964’],
[“制造”、“本田”],
['model','CRV'],
[‘年份’、‘2000’]
];
函数fromListToObject(数组){
var obj=Object.create(null);//我的对象的空容器
对于(vari=0;i控制台日志(结果)这是否为您提供了所需的输出

var数组=[
[“制造”,“福特”],
[‘车型’、‘野马’],
[‘年份’、‘1964’],
[“制造”、“本田”],
['model','CRV'],
[‘年份’、‘2000’]
];
函数fromListToObject(数据){
var cars=[];
对于(变量i=0;i
var数组=[[make'、[Ford']、[model'、[Mustang']、[year'、[1964']、[make'、[Honda']、[model'、[CRV']、[year'、[2000'];
函数fromListToObject(数组){
var cars=[];
对于(var j=0;j对于(var i=j;i您必须将数据放入一个对象数组中。我会将原始数组分块成当时键大小的块,然后处理这些块并为它们创建单独的对象。请注意,如果原始数组包含不相等的块(例如缺少键),下面的操作将失败,因此您需要添加一个检查,或者确保原始数组始终正确:

let数组=[
[“制造”,“福特”],
[‘车型’、‘野马’],
[‘年份’、‘1964’],
[“制造”、“本田”],
['model','CRV'],
[‘年份’、‘2000’]
];
函数到arrofobj(数组){
让keys=[…新映射(数组).keys()];
设i,j,res=[],chunk=keys.length;
for(i=0,j=array.length;i
返回完整对象

{ 
'0': { make: 'Ford', model: 'Mustang', year: '1964' },
'1': { make: 'Honda', model: 'CRV', year: '2000' }
}
var数组=[
[“制造”,“福特”],
[‘车型’、‘野马’],
[‘年份’、‘1964’],
[“制造”、“本田”],
['model','CRV'],
[‘年份’、‘2000’]
];
函数fromListToObject(数组){
var obj={};
var child_obj={};
var-objindex=0;
var指数=0;
while(array.length){
while(array.length&&index<3){
var arr1=array.shift();
child_obj[arr1[0]=arr1[1];
索引++;
}
指数=0;
obj[objindex]=子对象;
child_obj={};
objindex++;
}
返回obj;
}
var结果=从列表到对象(数组);

console.log(result);
strong textfunction??为什么总是使用
obj[arr1[0]
?这不是关于循环步长增量元素
i
?这是因为对象对于给定属性只能有一个值,除非将值放入数组中。您希望得到什么结果?应该是:
{make:[“Ford”,“Mustang”],车型:[“野马”,“CRV”],年份:[“1964”,“2000”]}
[{品牌:'福特',车型:'野马',年份:'1964'},{品牌:'本田',车型:'CRV',年份:'2000'}]
?{品牌:'福特',车型:'野马',年份:'1964'},{品牌:'本田',车型:'CRV',2000'}指定您的输出格式。不清楚。您是否尝试过当输入<代码>数组包含5个元素时会发生什么情况?@LukaszWiktor它应该是没有错误处理的基本代码,但我添加了一个新版本来处理这种情况。当然,我已经对您的第一个版本进行了升级,因为它非常优雅。第二个版本如果输入
数组
有5个元素,或者通常有一些元素不能被3整除,那么唯一正确的答案就是。