将JavaScript数组转换为对象
我不确定我在这方面做错了什么。当我试着运行代码时,它说这里有一个未定义的:将JavaScript数组转换为对象,javascript,object,Javascript,Object,我不确定我在这方面做错了什么。当我试着运行代码时,它说这里有一个未定义的: obj[array[i]array[j][0]=obj[array[i]array[j][1] 有人能解释一下我在做什么吗? 我正在寻找生成一个对象返回,如下所示 obj = { firstName:'Joe' } var array = [ [ ['firstName', 'Joe'], ['lastName', 'Blow'], ['age', 42], ['role', 'cl
obj[array[i]array[j][0]=obj[array[i]array[j][1]代码>
有人能解释一下我在做什么吗?
我正在寻找生成一个对象返回,如下所示
obj = {
firstName:'Joe'
}
var array = [
[
['firstName', 'Joe'], ['lastName', 'Blow'], ['age', 42], ['role', 'clerk']
],
[
['firstName', 'Mary'], ['lastName', 'Jenkins'], ['age', 36], ['role', 'manager']
]
]
function transformEmployeeData(array){
var obj = {};
for(var i = 0; i < array.length; i++){
for(var j = 0; j < array[i].length; j++){
obj[array[i]array[j][0]] = obj[array[i]array[j][1]];
}
}
return obj;
}
transformEmployeeData(array);
obj={
名字:“乔”
}
变量数组=[
[
['firstName','Joe',['lastName','Blow'],['age',42],'role','clerk']
],
[
['firstName','Mary',['lastName','Jenkins',['age',36','role','manager']
]
]
函数transformEmployeeData(数组){
var obj={};
对于(var i=0;i
第二部分不需要数组,也不需要对象
obj[array[i][j][0]] = array[i][j][1];
您需要一个数组来收集临时对象。这个必须归还
函数transformEmployeeData(数组){
var结果=[],
obj;
对于(var i=0;i log(transformEmployeeData(数组))代码>第二部分不需要数组,也不需要对象
obj[array[i][j][0]] = array[i][j][1];
您需要一个数组来收集临时对象。这个必须归还
函数transformEmployeeData(数组){
var结果=[],
obj;
对于(var i=0;i log(transformEmployeeData(数组))代码>为什么要将数据放入数组?物体在哪里
我希望在列表中看到员工对象:
public class Employee {
private final String firstName;
private final String lastName;
private final LocalDate birthDate;
private final String role;
public Employee(String f, String n, LocalDate b, String r) {
this.firstName = f;
this.lastName = n;
this.birthDate = LocalDate.from(b);
}
// add the rest
}
为什么要将数据放入数组中?物体在哪里
我希望在列表中看到员工对象:
public class Employee {
private final String firstName;
private final String lastName;
private final LocalDate birthDate;
private final String role;
public Employee(String f, String n, LocalDate b, String r) {
this.firstName = f;
this.lastName = n;
this.birthDate = LocalDate.from(b);
}
// add the rest
}
您需要一个对象数组,如下所示:
var array = [
[
['firstName', 'Joe'], ['lastName', 'Blow'], ['age', 42], ['role', 'clerk']
],
[
['firstName', 'Mary'], ['lastName', 'Jenkins'], ['age', 36], ['role', 'manager']
]
]
function transformEmployeeData(array){
var obj = [];
for(var i = 0; i < array.length; i++){
obj.push({});
for(var j = 0; j < array[i].length; j++){
obj[obj.length - 1][array[i][j][0]] = array[i][j][1];
}
}
return obj;
}
var obj = transformEmployeeData(array);
var result = JSON.stringify(obj);
console.log(result);
obj[array[i]array[j][0]=obj[array[i]array[j][1]]的原因代码>不起作用有两个原因:
1) 您希望从array
而不是从obj
分配给新对象,因为该对象尚不存在
2) array[i]array[j][0]
不是对数组的有效引用。您只想使用[j]
例如:对于i=0,j=0,您说的是array[0]array[0][0]
,但您确实想要array[0][0][0]
array[0]array[0]
不是有效语法(array[0][array[0]]][0]
是,但它不是正确的引用)。您需要一个对象数组,如下所示:
var array = [
[
['firstName', 'Joe'], ['lastName', 'Blow'], ['age', 42], ['role', 'clerk']
],
[
['firstName', 'Mary'], ['lastName', 'Jenkins'], ['age', 36], ['role', 'manager']
]
]
function transformEmployeeData(array){
var obj = [];
for(var i = 0; i < array.length; i++){
obj.push({});
for(var j = 0; j < array[i].length; j++){
obj[obj.length - 1][array[i][j][0]] = array[i][j][1];
}
}
return obj;
}
var obj = transformEmployeeData(array);
var result = JSON.stringify(obj);
console.log(result);
obj[array[i]array[j][0]=obj[array[i]array[j][1]]的原因代码>不起作用有两个原因:
1) 您希望从array
而不是从obj
分配给新对象,因为该对象尚不存在
2) array[i]array[j][0]
不是对数组的有效引用。您只想使用[j]
例如:对于i=0,j=0,您说的是array[0]array[0][0]
,但您确实想要array[0][0][0]
array[0]array[0]
不是有效的语法(array[0][array[0]][0]
是,但它不是正确的引用)。一种简单的方法是使用map创建对象数组,并使用forEach分配每个名称/值对
var数组=[
[
['firstName','Joe'],
['lastName','Blow'],
[‘年龄’,42],
[‘角色’、‘职员’]
],
[
['firstName','Mary'],
['lastName','Jenkins'],
[‘年龄’,36],
[‘角色’、‘经理’]
]
]
函数transformEmployeeData(数组){
返回array.map(a=>{
var obj={};
a、 forEach(a=>obj[a[0]]=a[1]);
返回obj;
});
}
var结果=transformEmployeeData(数组);
console.log(结果[0]);
console.log(结果[1])代码>一种简单的方法是使用map创建对象数组,并使用forEach分配每个名称/值对
var数组=[
[
['firstName','Joe'],
['lastName','Blow'],
[‘年龄’,42],
[‘角色’、‘职员’]
],
[
['firstName','Mary'],
['lastName','Jenkins'],
[‘年龄’,36],
[‘角色’、‘经理’]
]
]
函数transformEmployeeData(数组){
返回array.map(a=>{
var obj={};
a、 forEach(a=>obj[a[0]]=a[1]);
返回obj;
});
}
var结果=transformEmployeeData(数组);
console.log(结果[0]);
console.log(结果[1])代码>谢谢尼娜,你能解释为什么我不需要写数组[j]?你得到了一个未命名的数组,而不是一个变量。谢谢尼娜,你能解释为什么我不需要写数组[j]?你得到了一个未命名的数组,而不是一个变量。似乎是@Redu的完全副本-同意。看起来可能是家庭作业。似乎是@Redu-的完全复制品。看起来可能是家庭作业。