Могу ли я объединить последовательные вызовы Sugar.js в Array.map?
Например, если мой массив многомерен:
var myArray = [
{
key1: {
key2: 1,
...
},
...
},
{
key1: {
key2: 2,
...
},
...
}
];
myArray.map('key1').sum('key2');
= 3
Это также может быть
myArray.map('key1').map('key2').sum();
но есть ли способ объединить их в один вызов map
?
1 ответ
Решение
Когда карта принимает строку, это по сути ярлык для отрыва.
Как описано в документации Sugar, карта может более традиционно принимать функцию:
карта (карта, область действия)
Сопоставляет массив с другим массивом, содержащим значения, которые являются результатом вызова map для каждого элемента. область действия это объект. В дополнение к предоставлению этого метода для браузеров, которые не поддерживают его изначально, этот расширенный метод также напрямую принимает строку, которая является ярлыком для функции, которая получает это свойство (или вызывает функцию) для каждого элемента.
Возвращает: массив
Следовательно:
myArray.map(function(x) { return x.key1.key2; }).sum()