Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.11.2019, 17:14
Аспирант
Отправить личное сообщение для yozuul Посмотреть профиль Найти все сообщения от yozuul
 
Регистрация: 14.06.2013
Сообщений: 64

Объединение [массив][массив] попарно в массив [key, value]
Приветствую.
Получаю массивы в таком виде
[ 'file1 *** aea0f24263e5c7b9680fa16deb7e886086ba0bf1' ]
[ 'file1 *** aea0f24263e5c7b9680fa16deb7e886086ba0bf1' ]
[ 'file2 *** bc8d40d4173ca632deb8b4a696133a2d58d371a1' ]
[ 'file2 *** 88872614ff7f474d3605fed661ccd9eea1cf70b7' ]

Нужно по хешу сравнить файлы. Ничего кроме сравнения key != value не придумал, но никак не соображу, как их объединить попарно
{ 'file1 *** aea0f24263e5c7b9680fa16deb7e886086ba0bf1' : 'file1 *** aea0f24263e5c7b9680fa16deb7e886086ba0bf1' }
или так
[ 'file2 *** bc8d40d4173ca632deb8b4a696133a2d58d371a1', 'file2 *** 88872614ff7f474d3605fed661ccd9eea1cf70b7' ]

Последний раз редактировалось yozuul, 12.11.2019 в 17:17.
Ответить с цитированием
  #2 (permalink)  
Старый 12.11.2019, 17:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

yozuul,
подожду переводчика.
Ответить с цитированием
  #3 (permalink)  
Старый 12.11.2019, 18:22
Аспирант
Отправить личное сообщение для yozuul Посмотреть профиль Найти все сообщения от yozuul
 
Регистрация: 14.06.2013
Сообщений: 64

Сообщение от рони Посмотреть сообщение
подожду переводчика.
рони,
В двух папках лежит по 3 файла с одинаковыми именами. Мне нужно сравнить их содержимое (одинаковые они или нет). Сраваниваю по хешу.
class computeHash {
   constructor(file) {
      this.file = file
   }
   get files () {
      let inputRead = fs.createReadStream(data.input + this.file);
      let doneRead = fs.createReadStream(data.done + this.file);

      let inputHash = crypto.createHash('sha1');
      inputHash.setEncoding('hex');
      inputRead.on('end', function() {
          inputHash.end();
          let inputHashTransfer = new CompareFilesByHash (inputHash.read() + ' *** ' + inputRead.path).hashMap
      });

      let doneHash = crypto.createHash('sha1');
      doneHash.setEncoding('hex');
      doneRead.on('end', function() {
          doneHash.end();
          let inputHashTransfer = new CompareFilesByHash (doneHash.read() + ' *** ' + inputRead.path).hashMap
      });

      doneRead.pipe(doneHash);
      inputRead.pipe(inputHash);
      return this;
   }
};

class CompareFilesByHash {
   constructor(inputHash) {
      this.inputHash = inputHash
   }
   get hashMap () {
      for (let key of [this.inputHash]) {
         console.log(key)
      }
      return this;
   }
};

console.log(key)
88872614ff7f474d3605fed661ccd9eea1cf70b7 *** C:\.work\data/input/file1
88872614ff7f474d3605fed661ccd9eea1cf70b7 *** C:\.work\data/input/file1
bc8d40d4173ca632deb8b4a696133a2d58d371a1 *** C:\.work\data/input/file2
88872614ff7f474d3605fed661ccd9eea1cf70b7 *** C:\.work\data/input/file2
aea0f24263e5c7b9680fa16deb7e886086ba0bf1 *** C:\.work\data/input/file3
88872614ff7f474d3605fed661ccd9eea1cf70b7 *** C:\.work\data/input/file3


Дальше застрял. Как их сравнить? первую строку со второй, третью с четвёртой, пятую с шестой

Последний раз редактировалось yozuul, 12.11.2019 в 18:36.
Ответить с цитированием
  #4 (permalink)  
Старый 12.11.2019, 18:37
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от yozuul
но никак не соображу, как их объединить попарно
Зачем, достаточно итерацию цикла увеличивать на 2, а ней сравнивать элементы текущей итерации и текущей плюс 1.
Ответить с цитированием
  #5 (permalink)  
Старый 12.11.2019, 18:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

yozuul,
ок, помочь не могу, не понимаю структуры данных и какой результат нужен.
предполагаю что-то типа
let files = ['a','a','b','c'], arr = [...new Set(files)];
console.log(arr)

Последний раз редактировалось рони, 12.11.2019 в 18:54.
Ответить с цитированием
  #6 (permalink)  
Старый 12.11.2019, 19:38
Аспирант
Отправить личное сообщение для yozuul Посмотреть профиль Найти все сообщения от yozuul
 
Регистрация: 14.06.2013
Сообщений: 64

Спасибо всем, разобрался.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск