В приведенном ниже коде есть две строки, добавленные мной.
oMap[temp] = oMap[temp] || [];
Он проверит, существует ли свойство temp
в oMap
, затем оставит его значение таким же, иначе он станет пустым массивом.
oMap[temp].push(list[i]);
Это добавит новое значение в конец массива, который находится в temp
в oMap
var list = ['ab', 'cd', 'acb', 'dc', 'ba', 'abc', 'cba', 'bca'];
var oMap = {};
var pairs = [];
for(var i=0; i <list.length; i++){
var temp = sortstr(list[i]);
oMap[temp] = oMap[temp] || [];
oMap[temp].push(list[i]);
}
console.log(oMap);
function sortstr(text) {
return text.split('').sort().join('');
};
Вы строите одно значение из массива, поэтому, если вам нужны функции более высокого порядка, вы можете использовать reduce()
var list = ['ab', 'cd', 'acb', 'dc', 'ba', 'abc', 'cba', 'bca'];
const res = list.reduce((ac,a) => {
let k = sortstr(a);
ac[k] = (ac[k] || []).concat(a);
return ac;
},{})
console.log(res)
function sortstr(text) {
return text.split('').sort().join('');
};