NEWS
array [string] = variable
-
Hallo Zusammen,
ich möchte gerne mit dem Array week das Objekt monday in einer for Schleife aufrufen.
Problem dabei ist, das week mir einen String zurückgibt. Daher bin ich auf die Idee gekommen mit einem JSON.parse die Anführungszeichen zu entfernen. Leider funktioniert das nicht.const week = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']; let monday = { tag: 1, 1: { startTime: pfad + week[1] + start, },for (schritt = 0; schritt < week.length; schritt++) { //createTime(week[schritt][1], getState(week[schritt][1].startTime).val) //createTime(week[schritt][2], getState(week[schritt][2].startTime).val) console.log('test1' + getState(week[schritt][1].startTime).val); console.log('test2' + getState(monday[1].startTime).val); console.log('test3 ' + getState(JSON.parse(week[schritt])[1].startTime).val); }Bei 'test1' erhalte ich ein null
Bei 'test2' erhalte ich 14:45
und 'test3' funktioniert nichtWo liegt hier der Fehler?
-
Hallo Zusammen,
ich möchte gerne mit dem Array week das Objekt monday in einer for Schleife aufrufen.
Problem dabei ist, das week mir einen String zurückgibt. Daher bin ich auf die Idee gekommen mit einem JSON.parse die Anführungszeichen zu entfernen. Leider funktioniert das nicht.const week = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']; let monday = { tag: 1, 1: { startTime: pfad + week[1] + start, },for (schritt = 0; schritt < week.length; schritt++) { //createTime(week[schritt][1], getState(week[schritt][1].startTime).val) //createTime(week[schritt][2], getState(week[schritt][2].startTime).val) console.log('test1' + getState(week[schritt][1].startTime).val); console.log('test2' + getState(monday[1].startTime).val); console.log('test3 ' + getState(JSON.parse(week[schritt])[1].startTime).val); }Bei 'test1' erhalte ich ein null
Bei 'test2' erhalte ich 14:45
und 'test3' funktioniert nichtWo liegt hier der Fehler?
-
Hallo Zusammen,
ich möchte gerne mit dem Array week das Objekt monday in einer for Schleife aufrufen.
Problem dabei ist, das week mir einen String zurückgibt. Daher bin ich auf die Idee gekommen mit einem JSON.parse die Anführungszeichen zu entfernen. Leider funktioniert das nicht.const week = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']; let monday = { tag: 1, 1: { startTime: pfad + week[1] + start, },for (schritt = 0; schritt < week.length; schritt++) { //createTime(week[schritt][1], getState(week[schritt][1].startTime).val) //createTime(week[schritt][2], getState(week[schritt][2].startTime).val) console.log('test1' + getState(week[schritt][1].startTime).val); console.log('test2' + getState(monday[1].startTime).val); console.log('test3 ' + getState(JSON.parse(week[schritt])[1].startTime).val); }Bei 'test1' erhalte ich ein null
Bei 'test2' erhalte ich 14:45
und 'test3' funktioniert nichtWo liegt hier der Fehler?
@malaus sagte in array [string] = variable:
Wo liegt hier der Fehler?
du willst mit den Einträgen im Array deine Variablen addressieren. Dazu musst du entweder im array nicht die Namen sondern direkt die Objekte hinterlegen
let monday = { tag: 1, 1: { startTime: pfad + week[1] + start, }, const week = [sunday, monday, tuesday, wednesday, thursday, friday, saturday];oder dir ein Objekt schaffen welches das Ummappen übernimmt:
const week = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']; let monday = { tag: 1, 1: { startTime: pfad + week[1] + start, }, const weekobject = { monday: monday, }im ersten fall sollte direkt
console.log('test1' + getState(week[schritt][1].startTime).val);funktionieren.
im 2. Fall brauchst du
console.log('test1' + getState(weekobject[week[schritt]][1].startTime).val);Allerdings erscheinen beide Konstrukte unnötig kompliziert. Wie @paul53 geschrieben hat ist es einfacher zu helfen wenn klarer ist was du eigentlich erreichen willst.
A.
-
@malaus
Mit solchen Bruchstücken aus einem Skript kann niemand etwas anfangen.
Wie sieht die ID-Struktur der Datenpunkte aus, die eingelesen werden sollen? -
@malaus sagte in array [string] = variable:
Wo liegt hier der Fehler?
du willst mit den Einträgen im Array deine Variablen addressieren. Dazu musst du entweder im array nicht die Namen sondern direkt die Objekte hinterlegen
let monday = { tag: 1, 1: { startTime: pfad + week[1] + start, }, const week = [sunday, monday, tuesday, wednesday, thursday, friday, saturday];oder dir ein Objekt schaffen welches das Ummappen übernimmt:
const week = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']; let monday = { tag: 1, 1: { startTime: pfad + week[1] + start, }, const weekobject = { monday: monday, }im ersten fall sollte direkt
console.log('test1' + getState(week[schritt][1].startTime).val);funktionieren.
im 2. Fall brauchst du
console.log('test1' + getState(weekobject[week[schritt]][1].startTime).val);Allerdings erscheinen beide Konstrukte unnötig kompliziert. Wie @paul53 geschrieben hat ist es einfacher zu helfen wenn klarer ist was du eigentlich erreichen willst.
A.
@asgothian vielen Dank für diese Lösung!
Der Hintergrund ist der:
Ich möchte gerne die Fahrzeiten aus dem Worx Adapter auslesen und entsprechend einen Scheduler starten, der mir 1h vor Abfahrt die Wichtung der Zone ändert.
Dazu habe ich mir die ganzen Wochentage als Objekte aufgebaut und lasse die Zeiten per for schleife einmalig auslesen alles andere soll nur angepasst werden, wenn sich die Zeiten ändern.
Ich bin da noch viel am probieren, aber hier mal das bisherige Skript:
const week = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']; let monday = { tag: 1, 1: { borderCut: pfad + week[1] + border, startTime: pfad + week[1] + start, workTime: pfad + week[1] + work, wT_min: pfad2 + week[1] + '.wT_min', hour: pfad2 + week[1] + '.hour', min: pfad2 + week[1] + '.min', zone: 1, weekday: 1, }, 2: { borderCut: pfad + week[1] + '2' + border, startTime: pfad + week[1] + '2' + start, workTime: pfad + week[1] + '2' + work, wT_min: pfad2 + week[1] + '2' + '.wT_min', hour: pfad2 + week[1]+ '2' + '.hour', min: pfad2 + week[1] + '2' + '.min', zone: 2, weekday: 1, } } let tuesday = { tag: 2, 1: { borderCut: pfad + week[2] + border, startTime: pfad + week[2] + start, workTime: pfad + week[2] + work, wT_min: pfad2 + week[2] + '.wT_min', hour: pfad2 + week[2] + '.hour', min: pfad2 + week[2] + '.min', zone: 1, weekday: 1, }, 2: { borderCut: pfad + week[2] + '2' + border, startTime: pfad + week[2] + '2' + start, workTime: pfad + week[2] + '2' + work, wT_min: pfad2 + week[2] + '2' + '.wT_min', hour: pfad2 + week[2]+ '2' + '.hour', min: pfad2 + week[2] + '2' + '.min', zone: 2, weekday: 1, } } let wednesday = { tag: 3, 1: { borderCut: pfad + week[3] + border, startTime: pfad + week[3] + start, workTime: pfad + week[3] + work, wT_min: pfad2 + week[3] + '.wT_min', hour: pfad2 + week[3] + '.hour', min: pfad2 + week[3] + '.min', zone: 1, weekday: 1, }, 2: { borderCut: pfad + week[3] + '2' + border, startTime: pfad + week[3] + '2' + start, workTime: pfad + week[3] + '2' + work, wT_min: pfad2 + week[3] + '2' + '.wT_min', hour: pfad2 + week[3]+ '2' + '.hour', min: pfad2 + week[3] + '2' + '.min', zone: 2, weekday: 1, } } let thursday = { tag: 4, 1: { borderCut: pfad + week[4] + border, startTime: pfad + week[4] + start, workTime: pfad + week[4] + work, wT_min: pfad2 + week[4] + '.wT_min', hour: pfad2 + week[4] + '.hour', min: pfad2 + week[4] + '.min', zone: 1, weekday: 1, }, 2: { borderCut: pfad + week[4] + '2' + border, startTime: pfad + week[4] + '2' + start, workTime: pfad + week[4] + '2' + work, wT_min: pfad2 + week[4] + '2' + '.wT_min', hour: pfad2 + week[4]+ '2' + '.hour', min: pfad2 + week[4] + '2' + '.min', zone: 2, weekday: 1, } } let friday = { tag: 5, 1: { borderCut: pfad + week[5] + border, startTime: pfad + week[5] + start, workTime: pfad + week[5] + work, wT_min: pfad2 + week[5] + '.wT_min', hour: pfad2 + week[5] + '.hour', min: pfad2 + week[5] + '.min', zone: 1, weekday: 1, }, 2: { borderCut: pfad + week[5] + '2' + border, startTime: pfad + week[5] + '2' + start, workTime: pfad + week[5] + '2' + work, wT_min: pfad2 + week[5] + '2' + '.wT_min', hour: pfad2 + week[5]+ '2' + '.hour', min: pfad2 + week[5] + '2' + '.min', zone: 2, weekday: 1, } } let saturday = { tag: 6, 1: { borderCut: pfad + week[6] + border, startTime: pfad + week[6] + start, workTime: pfad + week[6] + work, wT_min: pfad2 + week[6] + '.wT_min', hour: pfad2 + week[6] + '.hour', min: pfad2 + week[6] + '.min', zone: 1, weekday: 1, }, 2: { borderCut: pfad + week[6] + '2' + border, startTime: pfad + week[6] + '2' + start, workTime: pfad + week[6] + '2' + work, wT_min: pfad2 + week[6] + '2' + '.wT_min', hour: pfad2 + week[6]+ '2' + '.hour', min: pfad2 + week[6] + '2' + '.min', zone: 2, weekday: 1, } } let sunday = { tag: 0, 1: { borderCut: pfad + week[0] + border, startTime: pfad + week[0] + start, workTime: pfad + week[0] + work, wT_min: pfad2 + week[0] + '.wT_min', hour: pfad2 + week[0] + '.hour', min: pfad2 + week[0] + '.min', zone: 1, weekday: 1, }, 2: { borderCut: pfad + week[0] + '2' + border, startTime: pfad + week[0] + '2' + start, workTime: pfad + week[0] + '2' + work, wT_min: pfad2 + week[0] + '2' + '.wT_min', hour: pfad2 + week[0]+ '2' + '.hour', min: pfad2 + week[0] + '2' + '.min', zone: 2, weekday: 1, } } const week2 = [sunday, monday, tuesday, wednesday, thursday, friday, saturday]; function createTime(obj, start){ let Liste = start.split(':'); let h = parseInt(Liste[0]); let m = parseInt(Liste[1]); let g = (h)*60 + m; setState(obj.wtmin, g); changeTime(obj, g); } function changeTime(obj, g){ let newg = g - 60; let newh = newg/60; let newm = newh - newh setState(obj.hour, newh); setState(obj.min, newm); } let schritt; function firstRun(){ for (schritt = 0; schritt < week2.length; schritt++) { //createTime(week[schritt][1], getState(week[schritt][1].startTime).val) //createTime(week[schritt][2], getState(week[schritt][2].startTime).val) console.log('Gehe einen Schritt nach Osten' + getState(week2[schritt][1].startTime).val); console.log('Gehe nach Osten' + getState(monday[1].startTime).val); //console.log('Gehe ' + getState(JSON.parse(week[schritt])[1].startTime).val); } } if (init !== true){ firstRun(); } -
@paul53
Der Datenpunkt startTime besteht aus:
pfad = javascript.0.
week = monday
start = .startTimeund wird so erstellt:
createState('javascript.0.monday.startTime', { read: true, write: true, desc: "Beschreibung", type: "string", });@malaus sagte: Der Datenpunkt startTime besteht aus:
const pfad = 'javascript.0.'; const week = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']; for(let schritt = 0; schritt < week.length; schritt++) { log(week[schritt] + ': ' + getState(pfad + week[schritt] + '.startTime').val); } -
@asgothian vielen Dank für diese Lösung!
Der Hintergrund ist der:
Ich möchte gerne die Fahrzeiten aus dem Worx Adapter auslesen und entsprechend einen Scheduler starten, der mir 1h vor Abfahrt die Wichtung der Zone ändert.
Dazu habe ich mir die ganzen Wochentage als Objekte aufgebaut und lasse die Zeiten per for schleife einmalig auslesen alles andere soll nur angepasst werden, wenn sich die Zeiten ändern.
Ich bin da noch viel am probieren, aber hier mal das bisherige Skript:
const week = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']; let monday = { tag: 1, 1: { borderCut: pfad + week[1] + border, startTime: pfad + week[1] + start, workTime: pfad + week[1] + work, wT_min: pfad2 + week[1] + '.wT_min', hour: pfad2 + week[1] + '.hour', min: pfad2 + week[1] + '.min', zone: 1, weekday: 1, }, 2: { borderCut: pfad + week[1] + '2' + border, startTime: pfad + week[1] + '2' + start, workTime: pfad + week[1] + '2' + work, wT_min: pfad2 + week[1] + '2' + '.wT_min', hour: pfad2 + week[1]+ '2' + '.hour', min: pfad2 + week[1] + '2' + '.min', zone: 2, weekday: 1, } } let tuesday = { tag: 2, 1: { borderCut: pfad + week[2] + border, startTime: pfad + week[2] + start, workTime: pfad + week[2] + work, wT_min: pfad2 + week[2] + '.wT_min', hour: pfad2 + week[2] + '.hour', min: pfad2 + week[2] + '.min', zone: 1, weekday: 1, }, 2: { borderCut: pfad + week[2] + '2' + border, startTime: pfad + week[2] + '2' + start, workTime: pfad + week[2] + '2' + work, wT_min: pfad2 + week[2] + '2' + '.wT_min', hour: pfad2 + week[2]+ '2' + '.hour', min: pfad2 + week[2] + '2' + '.min', zone: 2, weekday: 1, } } let wednesday = { tag: 3, 1: { borderCut: pfad + week[3] + border, startTime: pfad + week[3] + start, workTime: pfad + week[3] + work, wT_min: pfad2 + week[3] + '.wT_min', hour: pfad2 + week[3] + '.hour', min: pfad2 + week[3] + '.min', zone: 1, weekday: 1, }, 2: { borderCut: pfad + week[3] + '2' + border, startTime: pfad + week[3] + '2' + start, workTime: pfad + week[3] + '2' + work, wT_min: pfad2 + week[3] + '2' + '.wT_min', hour: pfad2 + week[3]+ '2' + '.hour', min: pfad2 + week[3] + '2' + '.min', zone: 2, weekday: 1, } } let thursday = { tag: 4, 1: { borderCut: pfad + week[4] + border, startTime: pfad + week[4] + start, workTime: pfad + week[4] + work, wT_min: pfad2 + week[4] + '.wT_min', hour: pfad2 + week[4] + '.hour', min: pfad2 + week[4] + '.min', zone: 1, weekday: 1, }, 2: { borderCut: pfad + week[4] + '2' + border, startTime: pfad + week[4] + '2' + start, workTime: pfad + week[4] + '2' + work, wT_min: pfad2 + week[4] + '2' + '.wT_min', hour: pfad2 + week[4]+ '2' + '.hour', min: pfad2 + week[4] + '2' + '.min', zone: 2, weekday: 1, } } let friday = { tag: 5, 1: { borderCut: pfad + week[5] + border, startTime: pfad + week[5] + start, workTime: pfad + week[5] + work, wT_min: pfad2 + week[5] + '.wT_min', hour: pfad2 + week[5] + '.hour', min: pfad2 + week[5] + '.min', zone: 1, weekday: 1, }, 2: { borderCut: pfad + week[5] + '2' + border, startTime: pfad + week[5] + '2' + start, workTime: pfad + week[5] + '2' + work, wT_min: pfad2 + week[5] + '2' + '.wT_min', hour: pfad2 + week[5]+ '2' + '.hour', min: pfad2 + week[5] + '2' + '.min', zone: 2, weekday: 1, } } let saturday = { tag: 6, 1: { borderCut: pfad + week[6] + border, startTime: pfad + week[6] + start, workTime: pfad + week[6] + work, wT_min: pfad2 + week[6] + '.wT_min', hour: pfad2 + week[6] + '.hour', min: pfad2 + week[6] + '.min', zone: 1, weekday: 1, }, 2: { borderCut: pfad + week[6] + '2' + border, startTime: pfad + week[6] + '2' + start, workTime: pfad + week[6] + '2' + work, wT_min: pfad2 + week[6] + '2' + '.wT_min', hour: pfad2 + week[6]+ '2' + '.hour', min: pfad2 + week[6] + '2' + '.min', zone: 2, weekday: 1, } } let sunday = { tag: 0, 1: { borderCut: pfad + week[0] + border, startTime: pfad + week[0] + start, workTime: pfad + week[0] + work, wT_min: pfad2 + week[0] + '.wT_min', hour: pfad2 + week[0] + '.hour', min: pfad2 + week[0] + '.min', zone: 1, weekday: 1, }, 2: { borderCut: pfad + week[0] + '2' + border, startTime: pfad + week[0] + '2' + start, workTime: pfad + week[0] + '2' + work, wT_min: pfad2 + week[0] + '2' + '.wT_min', hour: pfad2 + week[0]+ '2' + '.hour', min: pfad2 + week[0] + '2' + '.min', zone: 2, weekday: 1, } } const week2 = [sunday, monday, tuesday, wednesday, thursday, friday, saturday]; function createTime(obj, start){ let Liste = start.split(':'); let h = parseInt(Liste[0]); let m = parseInt(Liste[1]); let g = (h)*60 + m; setState(obj.wtmin, g); changeTime(obj, g); } function changeTime(obj, g){ let newg = g - 60; let newh = newg/60; let newm = newh - newh setState(obj.hour, newh); setState(obj.min, newm); } let schritt; function firstRun(){ for (schritt = 0; schritt < week2.length; schritt++) { //createTime(week[schritt][1], getState(week[schritt][1].startTime).val) //createTime(week[schritt][2], getState(week[schritt][2].startTime).val) console.log('Gehe einen Schritt nach Osten' + getState(week2[schritt][1].startTime).val); console.log('Gehe nach Osten' + getState(monday[1].startTime).val); //console.log('Gehe ' + getState(JSON.parse(week[schritt])[1].startTime).val); } } if (init !== true){ firstRun(); }
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden