javascript - 将 URL 数组中的文件和文件名拆分为新数组?
问题描述
我正在使用.map()
一组 href 来提取链接位置中的文件和文件名,并将它们放入一个新数组中。
问题是如何将解构后的数组const[file, folder]
转换为一个数组,该数组将包含linkContainer
变量包含的每个 URL 的文件和文件夹,因为.map()
是迭代它吗?显然它现在只收集第一个。
URL 示例包括:
- http://192.168.12.44:8090/SPECSHEET_PDF/R3CRDT_SPSHT.pdf
http://192.168.12.44:8090/INST_SHEET/R3CRN-trim_0.pdf
const liveLinks = linkContainer.map(function(v, a){ // v contains each URL const [file, folder] = v.split('/').reverse(); if(document.location.hostname.indexOf('wacdev.waclighting.com') == 0) { urlResult[a] = v + 'http://192.168.12.44:8090'; // just for testing return urlResult; } else { urlResult[a] = v + 'https://waclighting-images.s3.amazonaws.com'; return urlResult; } }); // Right now, file or folder only contains ONE file or folder name
理想的输出是:
console.log(file, folder) // [SPECSHEET_PDF, INST_SHEET] [R3CRDT_SPSHT.PDF, R3CRN-trim_0.pdf] etc
解决方案
用于.slice()
仅对数组的最后两个元素进行切片。
var url1 = "http://192.168.12.44:8090/SPECSHEET_PDF/R3CRDT_SPSHT.pdf"
var url2 = "http://192.168.12.44:8090/INST_SHEET/R3CRN-trim_0.pdf"
const [file, folder] = url1.split("/").slice(-2);
const [file2, folder2] = url2.split("/").slice(-2);
const files = [file, file2];
const folders = [folder, folder2];
console.log(files, folders);
如果 URL 的数量可以是任何值:
var urls = ["http://192.168.12.44:8090/SPECSHEET_PDF/R3CRDT_SPSHT.pdf", "http://192.168.12.44:8090/INST_SHEET/R3CRN-trim_0.pdf"]
urls = urls.map(v => v.split("/").slice(-2))
//[file, file2], [folder, folder2] format
console.log(urls.map(v => v[0]), urls.map(v => v[1]));
//[file, folder] format
console.log(urls);
推荐阅读
- javascript - 数据放置在 xAxis -nvd3 上的错误日期
- c - 我究竟做错了什么?它正确地将 e 的值放入 inputString 中,但它不会改变位置,因此它会不断覆盖字母
- javascript - PHP - 发送一封延迟 x 时间的电子邮件
- android - 通过 USB 连接的 arduino (ESP 8266) 设备未检测到
- filtering - 从 P13n 对话框中获取新的选定排序数据
- javascript - 根据另一个选择选项数据属性值禁用/删除选择选项
- jquery - 如何在 Ajax 成功中访问 spring 模型对象?
- scala - Scala 混合特征分配兼容性(层次结构)
- android - “基本活动”、Android Studio 3.1.4、API 28、Ubuntu 16.04 中的渲染问题
- c++ - 在一个字符串中多次查找相同的字符串