var re = /\[(.*?)\]\s*\((http.*?)\)/g;
var txt = '[катетер-направленному тромболизису] (https://www.radiologyinfo.org/en/info.cfm?pg=thrombo), но та, которая, помимо удаления тромбов, также открывает и усиливает слишком маленькие кровеносные сосуды через стенты или другие средства. Также может быть желательно увеличить их проницаемость, чтобы фиксаторы достигали паренхимы мозга по всему кровеносному сосуду, а не только на кончиках. Лазер может делать микроскопические дыры по всей длине, а затем, возможно, добавить [тонкий слой полиамида] (https://en.wikipedia.org/wiki/Thin-film_composite_membrane#Structure_and_materials)';
var html = txt.replace(re,(a,b,c)=>{
   console.log("-------------\ntext:",b,"\nurl:",c);
   return `<a href='${c}'>${c}</a>`;
});
console.log("-------------\n",html);-------------
text: катетер-направленному тромболизису 
url: https://www.radiologyinfo.org/en/info.cfm?pg=thrombo
-------------
text: тонкий слой полиамида 
url: https://en.wikipedia.org/wiki/Thin-film_composite_membrane#Structure_and_materials
-------------
 <a href='https://www.radiologyinfo.org/en/info.cfm?pg=thrombo'>https://www.radiologyinfo.org/en/info.cfm?pg=thrombo</a>, но та, которая, помимо удаления тромбов, также открывает и усиливает слишком маленькие кровеносные сосуды через стенты или другие средства. Также может быть желательно увеличить их проницаемость, чтобы фиксаторы достигали паренхимы мозга по всему кровеносному сосуду, а не только на кончиках. Лазер может делать микроскопические дыры по всей длине, а затем, возможно, добавить <a href='https://en.wikipedia.org/wiki/Thin-film_composite_membrane#Structure_and_materials'>https://en.wikipedia.org/wiki/Thin-film_composite_membrane#Structure_and_materials</a>const fs = require("fs");
const Discord = require("discord.js");
const client = new Discord.Client();
client.login("ТУТ ВАШ ТОКЕН");
...
// обработчик события message
client.on('message', async message => {
    const filename = Date.now()+".json";
    const data = {
        content: message.content,
        attachments: message.attachments.map(attach=>{
            return {
                id: attach.id,
                url: attach.url,
                proxyURL: attach.proxyURL,
                filename: attach.filename,
                filesize: attach.filesize,
                height: attach.height,
                width: attach.width
            };
        })
    };
    // не забудьте создать папочку logs в папке с ботом
    fs.writeFile('./logs/'+filename, JSON.stringify(data), (err) => {
        if (err) throw err;
    });
});{
  "content":"Тест",
  "attachments":[
    {
      "id":"686193341083549696",
      "url":"https://cdn.discordapp.com/attachments/452202521671237653/686193341083549696/IMG-30dd366b26acb4b1cbbe786f3ad22862-V.jpg",
      "proxyURL":"https://media.discordapp.net/attachments/452202521671237653/686193341083549696/IMG-30dd366b26acb4b1cbbe786f3ad22862-V.jpg",
      "filename":"IMG-30dd366b26acb4b1cbbe786f3ad22862-V.jpg",
      "filesize":58121,
      "height":330,
      "width":374
    }
  ]
}var matrixes =  [
  [
    [3, 2, 1],
    [1, 2, 3],
    [3, 1, 3]
  ], // Должен выводится 3
  [
    [3, 2, 1],
    [1, 2, 3],
    [3, 2, 1]
  ], // Должен выводится 0
  [
    [1, 0, 0, 0],
    [0, 1, 0, 0],
    [0, 0, 1, 0],
    [0, 0, 0, 1]
  ], // Должен выводится 4
  [
   [2, 4],
   [4, 2]
  ] // Должен выводится 0 
];
matrixes.forEach( matrix => {
   console.log("------------------------");
   console.table(matrix);
   console.log(calc(matrix));
});
function calc(matrix){
  let template = matrix[0];
  let result = matrix.reduce( (acc1, items, index1) => {
    if(index1===0) return acc1;
    template = template.reverse();
    acc1 += items.reduce( (acc2, item, index2) => {
        acc2 += Math.abs(template[index2]-item);
        return acc2;
    },0);
    return acc1;
  },0);
  return result;
}
var obj = { a: { b: { c: 3 } }, c: 1, b: 1 };
var str = 'a.b.c';
var value = eval('obj.'+str);var obj = { a: { b: { c: 3 } }, c: 1, b: 1 };
var value = getPath(obj,'a.c');
function getPath(object, keyPath){
    if( typeof keyPath === 'string' ) keyPath = keyPath.split(/\./);
    if( !Array.isArray(keyPath) ) return undefined;
    let key = keyPath.shift();
    if( !key) return object;
    if( !object.hasOwnProperty(key) ) return undefined;
    if( keyPath.length === 0 ) return object[key];
    return getPath(object[key],keyPath);
}$('input[name="date"]').mask("00:00 rm", {
    translation: {
      'r': {
        pattern: /(a|p)/,
      },
      placeholder: "__:__ __"
    }
  });
Что такое циклическая ссылка?
var a = {};
a.a = a;a.a.a у нас получиться, и к a.a.a.a.a.a получится. При этом a == a.a == a.a.a == a.a.a.a == и т.д... почему они мешают преобразованию объекта в JSON.
a не может быть преобразован к JSON      И почему всё выводится без задержки?
((i) => {   return console.log( i );  })(i) самовызывающаяся функция, которая выполняется сразу. сделайте вместо нее ()=>{   return console.log( i );  }for (let i=1; i<=5; i++) {
  setTimeout( () => {
    return console.log( i );
  }, 1000 );
}choicesInit copyDiv и c1 у вас обычные синхронные функции. Для них не надо писать awaitTypeError: document.all.surface is undefinedReferenceError: Numb is not definedReferenceError: check is not definedlet re = new RegExp(variable + "=" + ".*?(?=&|$)");
const result = url.replace(re, variable + "=" + newData);let url = 'http://localhost/?a=1&b=2&test=Y&clear=allcache';
let re = /(\?|&)(.*?)\=(.*?)(?=&|$)/g;
const newdata = {
   test: 333,
   clear: 4444
};
function changeURL(url, keys) {
   return url.replace(re, (a,prefix,key,val)=>{
     if( keys[key] )
       return prefix+key+"="+keys[key];
     return prefix+key+"="+val;
   });
}
url = changeURL(url, newdata);
console.log(url);var parse = (arr)=>arr.reduce((a,b)=>b.lists.forEach(c=>c.tags.forEach(d=>a.push({tags:d,volume:b.volume,list:c.list})))||a,[]);
var array = parse(json.results);
console.log(array);[ { tags: 'hello', volume: 1, list: 1 },
  { tags: 'world', volume: 1, list: 1 },
  { tags: 'hello', volume: 1, list: 2 },
  { tags: 'world', volume: 2, list: 1 },
  { tags: 'hello', volume: 2, list: 2 },
  { tags: 'internet', volume: 2, list: 2 } ]// функция с "МАГИЕЙ"
var upsertItem = (arr, item)=>{
   let isFound = false;
   arr = arr.map(obj=>{
      if( obj.id==item.id ){
         isFound = true;
         return item;
      }else{
         return obj;
      }
   });
   if( !isFound )
     arr.push(item);
   return arr;
}
// используем
arr=[{"id":1,"red":1000},{"id":2,"red":1000},{"id":3,"black":1000}];
// обновит элемент
   arr = upsertItem(arr, {"id":1,"red":0});
   console.log(JSON.stringify(arr));
   // выведет: [{"id":1,"red":0},{"id":2,"red":1000},{"id":3,"black":1000}]
// добавит элемент
   arr = upsertItem(arr, {"id":4,"blue":0});
   console.log(JSON.stringify(arr));
   // выведет: [{"id":1,"red":0},{"id":2,"red":1000},{"id":3,"black":1000},{"id":4,"blue":0}]