Почему он нажимает на имя параметра, а не на элемент? JavaScript

#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);