Please tell me why in this task, no duplicate values ​​are created in the object.

function aclean(arr) { // этот объект будем использовать для уникальности var obj = {}; for (var i = 0; i < arr.length; i++) { // разбить строку на буквы, отсортировать и слить обратно var sorted = arr[i].toLowerCase().split('').sort().join(''); // (*) obj[sorted] = arr[i]; // сохраняет только одно значение с таким ключом } var result = []; // теперь в obj находится для каждого ключа ровно одно значение for (var key in obj) result.push(obj[key]); return result; } var arr = ["воз", "киборг", "корсет", "ЗОВ", "гробик", "костер", "сектор"]; alert( aclean(arr) ); 

  • one
    You first obj["взо"] property obj["взо"] value "воз" , and then to him - the value "ЗОВ" . What are duplicates? - Igor

1 answer 1

An object of fields with the same name can have only one, and your field value is overwritten several times, as indicated in the code comments!