数组的JavaScript对象属性
我的目标如下:数组的JavaScript对象属性,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我的目标如下: const电影={ 1: { id:1, 名称:“地球”, }, 2: { id:2, 姓名:'塞尔玛', }, 3: { id:3, 名字:“百万美元宝贝”, }, 4: { id:4, 名字:“阿甘正传”, }, 5: { id:5, 姓名:“滚出去”, }, }; 然后我想要一个只有属性id的数组。为此,我尝试了以下方法: const moviesrarray=Object.values(电影); const-idArray=moviesArray.map(movie=>
const电影={
1: {
id:1,
名称:“地球”,
},
2: {
id:2,
姓名:'塞尔玛',
},
3: {
id:3,
名字:“百万美元宝贝”,
},
4: {
id:4,
名字:“阿甘正传”,
},
5: {
id:5,
姓名:“滚出去”,
},
};
然后我想要一个只有属性id的数组。为此,我尝试了以下方法:
const moviesrarray=Object.values(电影);
const-idArray=moviesArray.map(movie=>Object.values(movie)[0]);
控制台日志(idArray);
它正确地打印了
idArray
,但我的问题是,我是否缺少解决此问题的方法 您可以直接使用id
属性:
const
电影={1:{id:1,名字:'Planet Earth'},2:{id:2,名字:'Selma'},3:{id:3,名字:'Million Dollar Baby'},4:{id:4,名字:'Forrest Gump'},5:{id:5,名字:'Get Out'},
moviesArray=Object.values(电影),
idArray=moviesArray.map(movie=>movie.id);
控制台日志(idArray)
您可以直接使用id
属性:
const
电影={1:{id:1,名字:'Planet Earth'},2:{id:2,名字:'Selma'},3:{id:3,名字:'Million Dollar Baby'},4:{id:4,名字:'Forrest Gump'},5:{id:5,名字:'Get Out'},
moviesArray=Object.values(电影),
idArray=moviesArray.map(movie=>movie.id);
控制台日志(idArray)代码>
const电影={
1: {
id:1,
名称:“地球”,
},
2: {
id:2,
姓名:'塞尔玛',
},
3: {
id:3,
名字:“百万美元宝贝”,
},
4: {
id:4,
名字:“阿甘正传”,
},
5: {
id:5,
姓名:“滚出去”,
},
};
const moviesrarray=Object.values(电影);
const-idArray=moviesArray.map(movie=>movie.id);
控制台日志(idArray)代码>
const电影={
1: {
id:1,
名称:“地球”,
},
2: {
id:2,
姓名:'塞尔玛',
},
3: {
id:3,
名字:“百万美元宝贝”,
},
4: {
id:4,
名字:“阿甘正传”,
},
5: {
id:5,
姓名:“滚出去”,
},
};
const moviesrarray=Object.values(电影);
const-idArray=moviesArray.map(movie=>movie.id);
控制台日志(idArray)
我认为这里的映射部分不需要使用Object.values
。如果没有它,情况也会一样:
const电影={
1: {
id:1,
名称:“地球”,
},
2: {
id:2,
姓名:'塞尔玛',
},
3: {
id:3,
名字:“百万美元宝贝”,
},
4: {
id:4,
名字:“阿甘正传”,
},
5: {
id:5,
姓名:“滚出去”,
},
};
const moviesrarray=Object.values(电影);
const-idArray=moviesArray.map(movie=>movie);
console.log(moviesrarray)
我认为这里的映射部分不需要使用Object.values
。如果没有它,情况也会一样:
const电影={
1: {
id:1,
名称:“地球”,
},
2: {
id:2,
姓名:'塞尔玛',
},
3: {
id:3,
名字:“百万美元宝贝”,
},
4: {
id:4,
名字:“阿甘正传”,
},
5: {
id:5,
姓名:“滚出去”,
},
};
const moviesrarray=Object.values(电影);
const-idArray=moviesArray.map(movie=>movie);
console.log(moviesrarray)代码>可能是您可以使用更多的核心版本。
在我的解决方案中,循环只运行一次
const电影={
1: {
id:1,
名称:“地球”,
},
2: {
id:2,
姓名:'塞尔玛',
},
3: {
id:3,
名字:“百万美元宝贝”,
},
4: {
id:4,
名字:“阿甘正传”,
},
5: {
id:5,
姓名:“滚出去”,
},
};
常数=[];
为了(让我看电影){
推送(电影[i].id);
}
控制台日志(idArray)代码>可能是您可以使用更多的核心版本。
在我的解决方案中,循环只运行一次
const电影={
1: {
id:1,
名称:“地球”,
},
2: {
id:2,
姓名:'塞尔玛',
},
3: {
id:3,
名字:“百万美元宝贝”,
},
4: {
id:4,
名字:“阿甘正传”,
},
5: {
id:5,
姓名:“滚出去”,
},
};
常数=[];
为了(让我看电影){
推送(电影[i].id);
}
控制台日志(idArray)在这种情况下,我更倾向于使用movie=>movie.id
作为映射器函数,而不是movie=>Object.values(movie)[0]
当前函数的问题在于,它假定id
总是碰巧是对象.values
返回的数组中的第一个属性。对于您当前编写的函数,这恰好是正确的,但我不确定您是否能够在一般情况下保证这一点。即使属性的顺序不同,直接引用movie.id
也有效。它也应该快一点,因为您不必每次都将eaxh单个对象转换为数组。在这种情况下,我更倾向于使用movie=>movie.id
作为映射器函数,而不是movie=>object.values(movie)[0]
当前函数的问题在于,它假定id
总是碰巧是对象.values
返回的数组中的第一个属性。对于您当前编写的函数,这恰好是正确的,但我不确定您是否能够在一般情况下保证这一点。即使属性的顺序不同,直接引用movie.id
也有效。它也应该快一点,因为您不必每次都将eaxh单个对象转换为数组。object.keys(movies)object.values(movies).map(movie=>movie.id)
是否有理由将对象存储在以数字作为属性的对象中?将其存储在数组中更合适。Object.key(movies)Object.values(movies.map(movie=>movie.id)
是否有理由将对象存储在对象中