Объединение [массив][массив] попарно в массив [key, value]
Приветствую.
Получаю массивы в таком виде [ 'file1 *** aea0f24263e5c7b9680fa16deb7e886086ba0bf1' ] [ 'file1 *** aea0f24263e5c7b9680fa16deb7e886086ba0bf1' ] [ 'file2 *** bc8d40d4173ca632deb8b4a696133a2d58d371a1' ] [ 'file2 *** 88872614ff7f474d3605fed661ccd9eea1cf70b7' ] Нужно по хешу сравнить файлы. Ничего кроме сравнения key != value не придумал, но никак не соображу, как их объединить попарно { 'file1 *** aea0f24263e5c7b9680fa16deb7e886086ba0bf1' : 'file1 *** aea0f24263e5c7b9680fa16deb7e886086ba0bf1' } или так [ 'file2 *** bc8d40d4173ca632deb8b4a696133a2d58d371a1', 'file2 *** 88872614ff7f474d3605fed661ccd9eea1cf70b7' ] |
yozuul,
подожду переводчика. |
Цитата:
В двух папках лежит по 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,
ок, помочь не могу, не понимаю структуры данных и какой результат нужен. предполагаю что-то типа let files = ['a','a','b','c'], arr = [...new Set(files)]; console.log(arr) |
Спасибо всем, разобрался.
|
Часовой пояс GMT +3, время: 08:08. |