2017-10-11 65 views
-1

破壞對象的屬性我有一個這樣的數組:方法從嵌套數組

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'}}}] 

是否有從中我會得到的['aa.jpg', 'bb.jpg', 'cc.jpg']陣列的任何方式,我可以用它來從arr破壞image財產。我不想循環數組。

+1

沒有循環這是不可能的。 –

+0

一個奇怪的解決方案是將對象轉換爲JSON字符串,然後用該正則表達式在該字符串上提取圖像:P –

+1

「_I不想循環數組_」爲什麼不呢?這就是循環所爲,它們讓你的生活變得輕鬆。或者,你可以硬編碼到你的圖像陣列的每一個值,但這將是或多或少你知道什麼... – Teemu

回答

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

這是不可能通過僅使用陣列解構獲得值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);