#javascript #arrays #regex #sorting #object
#javascript #массивы #регулярное выражение #сортировка #объект
Вопрос:
Информация: Я сортирую массив имен на два массива, в одном имена начинаются с A-M, в другом- N-Z. Я хочу, чтобы каждая запись была объектом с именем в качестве свойства и пустой строкой в качестве значения, вот так -> {‘Name’ : ‘ ‘} но вместо этого все записи выглядят следующим образом —> {val: ‘ ‘}
Вот как я продвигаю записи -> arrAM.push({val: ‘ ‘});
Вопрос: Как мне нужно изменить ^^^^ этот метод, чтобы получить там имя вместо val. Спасибо за любую помощь!
var separate = function(array){
var arrAM = [];
var arrNZ = [];
_.each(array, function(val){
if (/^[a-m]/i.test(val)){
arrAM.push({val: ''});
}
else{
arrNZ.push({val: ''})
}
})
return arrAM;
}
Ответ №1:
ES6 имеет синтаксический сахар для вычисляемых имен свойств в инициализаторах объектов:
arrAM.push({[val]: ''});
Предварительная версия ES6 требует, чтобы вы использовали синтаксис скобок в отдельном операторе:
var obj = {};
obj[val] = '';
arrAM.push(obj);