У меня есть фрагмент кода, который использует распространенный синтаксис.
На моем главном сервере версия узла js равна 0.10.По какой-то причине невозможно обновить узел js.Поэтому я конвертирую все функции стрелок так, чтобы они были совместимы со старой версией узла js.Я не могу конвертировать оператор распространения.Я пытался с Object.assign
, но он показывает ошибку синтаксиса.Я запутался в том, как преобразовать оператор распространения в обычный код javascript.
Вот мой код:
senddata = Array.from({ ...data, length: Math.max(...Object.keys(data)) });
Я нахожу очень странным преобразование этого.На самом деле я просто не могу понять, куда добавить Object.assign и как исправить синтаксические ошибки, связанные с ним.
Для функции со стрелкой я преобразовал их следующим образом:
с помощью функции со стрелкой:
dag.get('obj')
.then((data) => {
run();
}, (err) => {
console.log(err)
})
без функции стрелки
dag.get('obj')
.then(function(data) {
run();
}, function(err) {
console.log(err)
})
Но не удалось преобразовать синтаксис спреда.
Это то, что я пробовал:
Object.assign({data},length: Math.max(Object.assign({Object},keys(data))
Кроме того, как я могу написать один и тот же код без использования синтаксиса распространения или Object.assign?
После обращения к ответам и предложениям, приведенным ниже, вот код:
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
senddata = Array.from({ ...data,
length: Math.max.apply(Math, _toConsumableArray(Object.keys(data)))
});
НоЯ все еще получаю ошибку для ...data