2015-04-28 1 views
2
/*This a demo program to campare buffers to each other. The expected output should be some numbers so that we came to know that these are equal or not. 
taking three buffer variables and storing some data into it. 
*/ 

var buf1 = new Buffer('Rahul'); Buffer contains Rahul 
var buf2 = new Buffer('Kumar'); Buffer contains Kumar 
var buf3 = new Buffer('Rahul'); Buffer contains Rahul 

//now comparing these buffers to each other 

r1= buf1.compare(buf2); 
r2= buf1.compare(buf3); 
r3= buf2.compare(buf3); 

//Printing them to console 

console.log(r1+ " " + r2 + " " + r3); 
+0

Ошибка говорит: «Объект Рахул ...» Я не вижу никакой переменной, названной Рахул здесь. Только buf1 и т.д. – Molda

ответ

0

'compare' не является прототипом функции. Оно должно быть использовано как:

Buffer.compare(b1,b2) 

Добавлен код Например:

var b1=new Buffer("a"); 
var b2=new Buffer("b"); 
var r=Buffer.compare(b1,b2); 
console.log(r); 
+0

извините @Pelit Mamani, но техника его подводит работала :( –

+0

класса Метод:. Buffer.compare (buf1, buf2) # buf1 буфера buf2 буфера же, как buf1.compare (buf2) Полезно для сортировки массива буферов: вар обр = [Буфер ('1234'), буфер ('0123')]; arr.sort (Buffer.compare); https://nodejs.org/api /buffer.html#buffer_class_method_buffer_compare_buf1_buf2 –

+0

Это звучит странно. Я просто добавил раздел кода к моему ответу, не могли бы вы попробовать его точно, как есть, и сказать, какую точную ошибку вы получаете? Это отлично работает для меня. . –

0

выглядит как Buffer.compare метод был введен в узле 0,12. Напр. 0.10 можно преобразовать буферы в массивы или строки и сравнить их.

Простой (не очень эффективный) способ проверки Buffer равенство - это просто преобразовать буферы в строки с JSON.stringify(b1) и провести сравнение строк.

Harder/быстрее и правильный путь должен был бы фактически написать функцию сравнения, которая проверяет буферы равенства побайтно и возвращает правильные -1, 0 или 1 как результат (необходимых для сортировки).