首页 > 解决方案 > 在javascript中将简单数组转换为“嵌套数组”的方法是什么?

问题描述

我想在不使用显示的情况下在我的远程虚拟机上捕获屏幕截图。我在 nodejs的“捕获屏幕截图”https://github.com/sindresorhus/capture-website)中遇到了一个非常简单的库。

截取单个链接的屏幕截图相当简单,但是截取多个屏幕截图变得棘手。我不想手动放置链接,因为它会很耗时。我正在运行一个脚本来获取 python 中的所有锚标记并保存收集的链接的 csv 文件。这是我将保存的 csv 文件转换为 JavaScript 数组时的样子。

[ 'https://www.google.com/imghp?hl=en&tab=wi',
  'https://maps.google.com/maps?hl=en&tab=wl',
  'https://play.google.com/?hl=en&tab=w8',
  'https://www.youtube.com/?gl=US&tab=w1',
  'https://news.google.com/nwshp?hl=en&tab=wn',
  'https://mail.google.com/mail/?tab=wm',
  'https://drive.google.com/?tab=wo',
  'https://www.google.com/intl/en/about/products?tab=wh',
  'https://accounts.google.com/ServiceLogin?hl=en&passive=true&continue=https://www.google.com/',
  'https://www.google.com/url?q=https://lifeinaday.youtube/%3Futm_source%3Dgoogle%26utm_medium%3Dhppcta%26utm_campaign%3D2020&source=hpp&id=19019062&ct=3&usg=AFQjCNEJMAD58Mjdnro8Mjm-RtJ3nfEIZA&sa=X&ved=0ahUKEwi98PWM4-HqAhVh1uAKHeYGCPwQ8IcBCAU'
 ]

我想将上面的数组转换为如下所示的数组。

[ 
  ['https://www.google.com/imghp?hl=en&tab=wi', 'anyanme'],
  ['https://maps.google.com/maps?hl=en&tab=wl','anyanme'],
  ['https://play.google.com/?hl=en&tab=w8','anyanme'],
  ['https://www.youtube.com/?gl=US&tab=w1','anyanme'],
  ['https://news.google.com/nwshp?hl=en&tab=wn','anyanme'],
  ['https://mail.google.com/mail/?tab=wm','anyanme'],
  ['https://drive.google.com/?tab=wo','anyanme'],
  ['https://www.google.com/intl/en/about/products?tab=wh','anyanme'],
  ['https://accounts.google.com/ServiceLogin?hl=en&passive=true&continue=https://www.google.com/','anyanme'],
  ['https://www.google.com/url?q=https://lifeinaday.youtube/%3Futm_source%3Dgoogle%26utm_medium%3Dhppcta%26utm_campaign%3D2020&source=hpp&id=19019062&ct=3&usg=AFQjCNEJMAD58Mjdnro8Mjm-RtJ3nfEIZA&sa=X&ved=0ahUKEwi98PWM4-HqAhVh1uAKHeYGCPwQ8IcBCAU','anyanme']
   ];
``
I am newbie to javscript and having a hard time to solve this. Any help will be appreciated.

标签: javascriptnode.jsarraysscreenshot

解决方案


您可以使用 Map 和正则表达式来实现它

const arr = ['https://www.google.com/imghp?hl=en&tab=wi',
  'https://maps.google.com/maps?hl=en&tab=wl',
  'https://play.google.com/?hl=en&tab=w8',
  'https://www.youtube.com/?gl=US&tab=w1',
  'https://news.google.com/nwshp?hl=en&tab=wn',
  'https://mail.google.com/mail/?tab=wm',
  'https://drive.google.com/?tab=wo',
  'https://www.google.com/intl/en/about/products?tab=wh',
  'https://accounts.google.com/ServiceLogin?hl=en&passive=true&continue=https://www.google.com/',
  'https://www.google.com/url?q=https://lifeinaday.youtube/%3Futm_source%3Dgoogle%26utm_medium%3Dhppcta%26utm_campaign%3D2020&source=hpp&id=19019062&ct=3&usg=AFQjCNEJMAD58Mjdnro8Mjm-RtJ3nfEIZA&sa=X&ved=0ahUKEwi98PWM4-HqAhVh1uAKHeYGCPwQ8IcBCAU',
  '',
];

function extractName(str) {
  const regex = /https:\/\/(.*?)\//g;

  const ret = regex.exec(str);
  
  return (ret && ret[1]) || null;
}

const items = arr.map(x => [
  x,
  extractName(x),
]);

console.log(items);


推荐阅读