Please explain.
1) What is Object.keys(obj)
2) obj[str] = true; - and what prevents another value from taking its place.
function unique(arr) { var obj = {}; for(var i=0; i<arr.length; i++) { var str = arr[i]; obj[str] = true; // запомнить строку в виде свойства объекта } return Object.keys(obj); // или собрать ключи перебором для IE<9 } var strings = ["кришна", "кришна", "харе", "харе", "харе", "харе", "кришна", "кришна", "8-()"]; alert( unique(strings) ); // кришна, харе, 8-()