这真的很小......但我无法弄清楚这一点。
const compose_url = (id, key) =>
`${id}/image/_/${key}`;
const get_images = compose_url(
this.props.dataset_id, // pass in prefix (2018_1_25)
get_image_arrays // This returns an array with two arrays e.g. [["img1.png"], ["img2.png"]]
);
我想让它返回“2018_1-25 / img1.png”和“2018_1-25 / img2.png”,但我只是为第一个数组获得了这个,(“2018_1-25 / img1.png” )不是第二个。我怎么能循环这个来为两个图像添加前缀?
请帮助......我没有找到有关如何执行此操作的文档或示例。
答案 0 :(得分:1)
const get_images = [];
const { dataset_id: id } = this.props;
get_images_array.forEach(arr => {
arr.forEach(path => {
get_images.push(
compose_url(
id,
path
)
);
}
});
编辑:
我对其他答案采用了不同的方法,而不是修改compose_url
方法,而是使用了给定的数据。此方法迭代顶层数组(get_images_array
),然后迭代get_images_array
中的每个数组。对于内部数组中的每个路径,compose_url
的结果将被推送到get_images
结果数组。
答案 1 :(得分:1)
你需要在这里更新compose_url()函数,并确保你总是将数组作为vairable的第二个传递。
const compose_url = (date, imageArray) =>
imageArray.map((eachImage) => `${id}/image/_/${eachImage}`);
希望这会有所帮助。
答案 2 :(得分:0)
试试这个。
const compose_url = (id, arr) => {
return arr.map((ar) => (
`${id}/image/_/${ar}`
));
};
此功能将返回[ "2018_1_25/image/_/img1.png", "2018_1_25/image/_/img2.png" ]
答案 3 :(得分:0)
您可以简单地映射数组,如
const compose_url = (id, arr) => {
return [].concat(arr.map(data => [].concat(data.map(key) => `${id}/${key}`)));
}
const get_images = compose_url(
this.props.dataset_id, // pass in prefix (2018_1_25)
get_image_arrays // This returns an array with two arrays e.g. [["img1.png"], ["img2.png"]]
);