[英]How to merge multiple arrays in foreach loop in Javascript
如何在 foreach 循環中合並多個 arrays。 我正在嘗試將所有 3 個imageData
arrays 合並到一個數組中。 請告訴我是否遺漏了以下方法中的任何內容。
const imageArray = [
{
imageData: [
'https://via.placeholder.com/50',
'https://via.placeholder.com/60'
],
},
{
imageData: [
'https://via.placeholder.com/100'
],
},
{
imageData: [
'https://via.placeholder.com/150'
],
}
];
processImage() {
imageArray.forEach((element) => {
const imageCollection = [...element.imageData];
console.log(imageCollection);
// Expected result
//['https://via.placeholder.com/50', 'https://via.placeholder.com/60', 'https://via.placeholder.com/100', https://via.placeholder.com/150]
});
}
您在循環中聲明新的 imageCollection ..因此您每次迭代都會創建一個新數組...
在外面做,並在 forEach 循環中使用imageCollection.push(...element.imageData)
您的數組需要在forEach
循環之外,以便在forEach
完成后可以訪問它。
const imageArray = [
{
imageData: [
'https://via.placeholder.com/50',
'https://via.placeholder.com/60'
]
},
{
imageData: ['https://via.placeholder.com/100']
},
{
imageData: ['https://via.placeholder.com/150']
}
];
const processImage = function (imageArray) {
const imageCollection = [];
imageArray.forEach(element => {
imageCollection.push(...element.imageData);
});
return imageCollection;
};
processImage(imageArray)
的預期結果
[
'https://via.placeholder.com/50',
'https://via.placeholder.com/60',
'https://via.placeholder.com/100',
'https://via.placeholder.com/150'
]
試試這個,object imageData 中的 foreach,並使用另一個 Foreach 將每個值保存在數組中。
let newImageData = []
imageArray.forEach((data)=>{
const imageDataArray = data.imageData
imageDataArray.forEach(link => {
newImageData.push(link)
});
})
const NewImageArray = {imageData:newImageData}
console.log(NewImageArray)
您可以在forEach
之外分配imageCollection
(但仍在processImage()
之內)。 然后在forEach
內部的imageCollection
的重新定義中,傳播每個先前的imageCollection
數組的內容,然后是element.imageData
的內容。 像這樣:
//...
processImage() {
let imageCollection = [];
imageArray.forEach((element) => {
imageCollection = [...imageCollection, ...element.imageData];
//...
const imageArray = [
{
imageData: [
'https://via.placeholder.com/50',
'https://via.placeholder.com/60'
],
},
{
imageData: [
'https://via.placeholder.com/100'
],
},
{
imageData: [
'https://via.placeholder.com/150'
],
}
];
processImage() {
let imageCollection = [];
imageArray.forEach((element) => {
imageCollection = [...imageCollection, ...element.imageData];
console.log(imageCollection);
// Expected result
//['https://via.placeholder.com/50', 'https://via.placeholder.com/60', 'https://via.placeholder.com/100', https://via.placeholder.com/150]
});
console.log('ImageCollection',imageCollection);
}
const imageArray = [
{
imageData: [
'https://via.placeholder.com/50',
'https://via.placeholder.com/60'
],
},
{
imageData: [
'https://via.placeholder.com/100'
],
},
{
imageData: [
'https://via.placeholder.com/150'
],
}
];
function processImage() {
let imageCollection = [];
imageArray.forEach((element) => {
imageCollection = [...imageCollection, ...element.imageData];
console.log(imageCollection);
// Expected result
//['https://via.placeholder.com/50', 'https://via.placeholder.com/60', 'https://via.placeholder.com/100', https://via.placeholder.com/150]
});
console.log('ImageCollect',imageCollection);
}
processImage();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.