繁体   English   中英

嵌套数组破坏对象属性的方法

[英]ways to destruct object properties from nested array

我有一个像这样的数组:

 const arr = [{name: 'mm', status: 200, response: {size: 1173, code: 0, data: {image: 'aa.png', abs_image: 'fwefwesa.jpg'}}},{name: 'gg', status: 200,response: {size: 1133, code: 0, data: {image: 'bb.png', abs_image: 'fwefwerwea.jpg'}}},{name: 'gg', status: 200, response: {size: 1133, code: 0,data: {image: 'cc.png', abs_image: 'fwefwerwea.jpg'}}}]

有什么方法可以用来从arr破坏image属性,从中我可以得到['aa.jpg', 'bb.jpg', 'cc.jpg'] 我不想循环数组。

var imageArray = arr.map(elem => elem.response.data.image)

仅使用数组解构不可能获得值数组image ,而只能获取可变形式的单个元素。 要获得数组,您必须执行以下操作:

 const arr = [{name: 'mm', status: 200, response: {size: 1173, code: 0, data: {image: 'aa.png', abs_image: 'fwefwesa.jpg'}}},{name: 'gg', status: 200,response: {size: 1133, code: 0, data: {image: 'bb.png', abs_image: 'fwefwerwea.jpg'}}},{name: 'gg', status: 200, response: {size: 1133, code: 0,data: {image: 'cc.png', abs_image: 'fwefwerwea.jpg'}}}] const [ {response: { data: { image } } }, {response: { data: { image: image2 } } }, {response: { data: { image: image3 } } }] = arr; console.log([image, image2, image3]); 

这确实有点道理。 相反,您可以在有或没有参数解构的情况下在该数组上调用映射:

 const arr = [{name: 'mm', status: 200, response: {size: 1173, code: 0, data: {image: 'aa.png', abs_image: 'fwefwesa.jpg'}}},{name: 'gg', status: 200,response: {size: 1133, code: 0, data: {image: 'bb.png', abs_image: 'fwefwerwea.jpg'}}},{name: 'gg', status: 200, response: {size: 1133, code: 0,data: {image: 'cc.png', abs_image: 'fwefwerwea.jpg'}}}] const imageArr = arr.map(({ response: { data: { image }}}) => image); const imageArr2 = arr.map((item) => item.response.data.image); console.log(imageArr); console.log(imageArr2); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM