Ich bin nicht vertraut mit neuen JavaScript ES6-Kodierung Konventionen und haben einige Code, wo ich es benötigt werden, um alte JavaScript ES5.Konvertieren ES6 Javascript in ES5 ohne Transpiler
Würde es wirklich schätzen, dass Leute mit der Umwandlung dieses js Codes ohne den Gebrauch von Babel oder irgendeinem anderen transpiler helfen konnten.
Kann Babel nicht als am Arbeitsplatz erlaubt verwenden.
Ich erkenne, dass alle "const" in "var" umgewandelt werden kann, aber neue Pfeilfunktionen und andere Elemente unsicher sind.
Haben Sie versucht Umwandlung aber immer:
Uncaught Reference: Linie ist nicht
Der ES6 Code definiert, die ich ES5 mag umgewandelt würde, ist:
const data = [{ "rec": "1", "region": "LEFT", "intrface": "Line-1" },{ "rec": "1", "region": "LEFT", "intrface": "Line-2" },{ "rec": "1", "region": "RIGHT", "intrface": "Line-3" },{ "rec": "1", "region": "RIGHT", "intrface": "Line-4" }];
const s = Snap("#svg");
const height = 40;
const canvasWidth = 400;
const lineWidth = 180;
const rightOffset = canvasWidth/2 - lineWidth;
const leftLines = data.filter((line) => !isRightLine(line));
const rightLines = data.filter(isRightLine);
leftLines.forEach(drawLine);
rightLines.forEach(drawLine);
const numberOfLines = Math.max(leftLines.length, rightLines.length);
const rectSize = 20;
const rectangles = [];
for (let i = 0; i < numberOfLines; i++) {
rectangles.push(drawRect(i));
}
function drawLine(data, index) {
const {intrface} = data;
const isRight = isRightLine(data);
const x = isRight ? canvasWidth/2 + rightOffset : 0;
const y = height * (index + 1);
const stroke = isRight ? 'red' : 'black';
const line = s.line(x, y, x + 180, y);
line.attr({
stroke,
strokeWidth: 1
});
const text = s.text(x + 10, y - 5, intrface);
text.attr({
fill: stroke,
cursor: 'pointer'
});
text.click(() => {
console.log('clicked', data);
//window.location.href = "http://stackoverflow.com/";
});
}
function isRightLine({region}) {
return region === 'RIGHT';
}
function drawRect(index) {
const x = canvasWidth/2 - rectSize/2;
const y = height * (index + 1) - rectSize/2;
const rectangle = s.rect(x, y, rectSize, rectSize);
rectangle.attr({
fill: 'black'
});
console.log('rr', x, y);
return rectangle;
}
Die Konvertierung allein reicht möglicherweise nicht aus, wenn let/const korrekt verwendet wurde. Möglicherweise müssen Sie sie mit dem Hochziehen umgestalten. Auch warum keine Verwendung von Babel? –
Warum nicht einfach Babel benutzen und sich die Ausgabe ansehen? Sie bekommen das meiste richtig. – Bergi
Diese beiden Instanzen von Pfeilfunktionen können trivial durch Funktionsausdrücke ersetzt werden, und nichts wird unterbrochen. – Bergi