如何在JavaScript中一次性打印对象的多个指定属性
你尝试的recordCollection[2548]['artist', 'tracks']写法无法拿到两个属性,因为方括号内的逗号是JavaScript的逗号运算符,会依次执行逗号两侧的表达式,最终仅返回最后一个表达式的结果,所以上述代码等价于recordCollection[2548]['tracks'],只能拿到tracks属性的值。
以下是几种同时获取并打印两个属性的实现方式:
方案1:直接多参数打印
如果仅需要临时输出两个属性的值,直接给console.log传入多个参数即可:
// 点写法 console.log(recordCollection[2548].artist, recordCollection[2548].tracks); // 方括号写法,和上面效果一致 console.log(recordCollection[2548]['artist'], recordCollection[2548]['tracks']);
打印时两个属性的值会默认用空格分隔输出。
方案2:对象解构赋值
如果后续还要复用这两个属性,可以先通过解构把属性提取为独立变量:
const { artist, tracks } = recordCollection[2548]; // 打印 console.log(artist, tracks); // 后续可以直接使用artist、tracks变量做其他逻辑处理
方案3:批量提取多属性(适合属性数量较多的场景)
如果需要提取的属性数量多,可以封装通用方法批量获取,避免重复写属性名:
function getMultiProps(obj, propArray) { return propArray.reduce((result, currentProp) => { result[currentProp] = obj[currentProp]; return result; }, {}); } // 调用示例 const targetAlbumInfo = getMultiProps(recordCollection[2548], ['artist', 'tracks']); console.log(targetAlbumInfo); // 输出结果:{ artist: 'Bon Jovi', tracks: ['Let It Rock', 'You Give Love a Bad Name'] }
内容的提问来源于stack exchange,提问作者NotAgainLarry
相关产品推荐
相关产品推荐

