[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Objekt-Literal

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Objekt-Literal

pixxxelschubser
Beiträge gesamt: 1708

13. Dez 2017, 00:02
Beitrag # 1 von 9
Bewertung:
(2570 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,
ich „spiele“ gerade ein bisschen mit einem „aus der hohlen Hand“ erzeugtem Objekt-Literal herum.

Beispielcode:
Code
var obj = { 
name1 : "value1",
name2 : "value2",
name3 : "value3"
}

Es ist problemlos möglich, die einzelnen values über ihre keys anzusprechen und auch zu ändern.

Egal ob:
obj['name2'] = "valueNeu";
oder
obj['name'+2] = "valueNeu";
oder
obj.name2 = "valueNeu";

… es gibt genügend Varianten für Aufruf und Neuzuweisung.


Allerdings kann ich keinen einfachen Weg finden, die einzelne keys/namen aufzurufen und zu ändern.

Kann mir hier jemand „unter die Arme greifen“ und mir erklären, wie ich z.B.
obj['name2'] = "value2";
obj['name3'] = "value3";
in
obj['key2'] = "value2";
obj['andererName3'] = "value3";
ändere?

Also im Objekt nur die keys ändere und die Werte beibehalte?

Den einzigen Weg der mir bis jetzt eingefallen ist, empfinde ich eher als einen kruden Workaround --> ein neues Objekt mit neuen keys erstellen und die passenden Werte einfach wieder zuordnen.

Geht das nicht doch direkter?
Vielen Dank im Voraus.
X

Objekt-Literal

Martin Fischer
  
Beiträge gesamt: 12783

13. Dez 2017, 06:58
Beitrag # 2 von 9
Beitrag ID: #561401
Bewertung:
(2555 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans-Jürgen,

versuch's mal so:

Code
var obj = { 
"name1" : "value1",
"name2" : "value2",
"name3" : "value3"
}

obj['key2'] = obj['name2'];
delete obj['name2'];



als Antwort auf: [#561400]
(Dieser Beitrag wurde von Martin Fischer am 13. Dez 2017, 07:38 geändert)

Objekt-Literal

WernerPerplies
Beiträge gesamt: 2762

13. Dez 2017, 08:09
Beitrag # 3 von 9
Beitrag ID: #561403
Bewertung:
(2534 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo pixxxelschubser,

Auf die Schnelle fällt mir nur dies ein (dürfte ziemlich langsam sein):
Code
// DESCRIPTION rename object properity 
// Dateiname: wpsObjectPropertyRename.jsx
// © 2017 by Werner Perplies, EDV-Anwendungsberatung,
// http://www.weepee.de, email: werner.perplies@weepee.de
// [modified]
// created: Wed Dec 13 2017 08:01:30 GMT+0100
// [lastFileProps:({time:"1487325362000", size:3813, checkSum:"262c6114"})]
// [end of header]
// #include "C:/Workspaces/wpsObjectPropertyRename.jsx
Object.prototype.propertyRename = function(oldName,newName)
{
var /*Any*/value = this[oldName];

delete this[oldName];
this[newName] = value;
}

// start only for testing
main();

/*Void*/function main()
{
var /*Void*/o = {name1: "name1", name2:"name2"};

o.propertyRename("name1", "name3");

alert(o.name3);
}
// end only for testing


Ach ja, wofür braucht man so etwas?


als Antwort auf: [#561400]

Objekt-Literal

pixxxelschubser
Beiträge gesamt: 1708

13. Dez 2017, 22:39
Beitrag # 4 von 9
Beitrag ID: #561421
Bewertung:
(2450 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin und Werner,
ich danke euch sehr für eure Antworten. Das ist schon viel mehr als ich überhaupt erwartet hatte. Ich werde eure vorgeschlagenen Lösungen garantiert in den nächsten Tagen durchtesten und euch dann noch einmal ein Feedback geben.

Auf den ersten Blick sehen sowohl Martins Vorschlag für die „einfache“ Umbenennung als als Werners prototype-Funktion sehr vielversprechend aus.


Antwort auf: … Ach ja, wofür braucht man so etwas?

Bisher habe ich das nicht gebraucht. Doch irgendwann ist immer das erste Mal. Bin in ein Thema reingerutscht und die (einfachste) Lösung für das dortige Problem (ohne den Code komplett umzuschreiben) schien mir die Änderung der keys in dem bereits vorhandenen Objekt zu sein. Hat dann auch funktioniert. Wie gesagt mit dem etwas kruden Workaround über ein zweites neu anzulegendes Objekt. Bei Interesse findet ihr das Thema hier:
https://forums.adobe.com/thread/2422300

Danke nochmals und bis demnächst


als Antwort auf: [#561403]
(Dieser Beitrag wurde von pixxxelschubser am 13. Dez 2017, 22:43 geändert)

Objekt-Literal

WernerPerplies
Beiträge gesamt: 2762

14. Dez 2017, 09:26
Beitrag # 5 von 9
Beitrag ID: #561422
Bewertung:
(2413 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin pixxxelschubser,

Zitat Bei Interesse findet ihr das Thema hier:
https://forums.adobe.com/thread/2422300


Wenn ich das richtig verstanden habe, geht es in diesem Beispiel um die Loakalisierung eine Skriptes, und so etwas würde ich nicht im Skript hart codieren, sondern über externe Dateien lösen.

Ein Beispiel für solch eine Lösung findest Du in diesem Skript:

WpsIndFileIdentifier

Ist, wenn man die Problematik allgemeingültig lösen will, ein ziemlicher Aufwand, aber einmal gelöst und eingebaut, kann man ein Skript durch Erzeugung einer externen Meldungsdatei leicht an jede Sparache anpassen.


als Antwort auf: [#561421]

Objekt-Literal

pixxxelschubser
Beiträge gesamt: 1708

14. Dez 2017, 19:24
Beitrag # 6 von 9
Beitrag ID: #561443
Bewertung:
(2364 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,
zuerst dachte ich mir, ich hätte vielleicht den falschen Link gepostet.

Aber nein. Du hast das Thema etwas missverstanden. Es geht nicht um die Lokalisierung sondern vielmehr um eine Art „Ersatz-Grep“ für Illustrator. Das Script soll (basierend auf der Wortgruppen-Liste) einzelne Wörter oder Wortgruppen durch die entsprechenden Ausdrücke in der Sprache Khmer in allen Textrahmen in allen offenen Dokumenten ersetzen.

Das ist auch schon alles. Trotzdem Danke.


als Antwort auf: [#561422]

Objekt-Literal

WernerPerplies
Beiträge gesamt: 2762

14. Dez 2017, 19:47
Beitrag # 7 von 9
Beitrag ID: #561446
Bewertung:
(2362 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo pixxxelschubser,

Zitat zuerst dachte ich mir, ich hätte vielleicht den falschen Link gepostet.

Ok, ich schaue mir das noch einmal an, aber ich denke die Aufgabenstellung ändert nichts am Weg:

Das Objekt als externe Json-Dateien pflegen und je nach Bedarf einlesen und keinesfalls die Eigenschaftsnamen nachträglich ändern.

Das Ändern der Eigenschaftsnamen durch Löschen und neu Erzeugen der Eigenschaften dürfte übrigens zu heftiger Tätigkeit des Garbage Collectors führen.


als Antwort auf: [#561443]

Objekt-Literal

pixxxelschubser
Beiträge gesamt: 1708

14. Dez 2017, 20:31
Beitrag # 8 von 9
Beitrag ID: #561448
Bewertung:
(2356 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: … Das Ändern der Eigenschaftsnamen durch Löschen und neu Erzeugen der Eigenschaften dürfte übrigens zu heftiger Tätigkeit des Garbage Collectors führen.


Da stimme ich dir doch zu 100% zu.

Und vielleicht ist dann gerade deswegen der Weg über ein zweites unabhängiges Objekt (das auf dem ersten basiert) doch nicht ein ganz so „kruder Workaround“ für den ich ihn zuerst gehalten hatte. Immerhin sind beide Objekte in einer Funktion gekapselt und somit dürften sich die Auswirkungen auf den globalen Scope ziemlich in Grenzen halten.

Was man trotzdem nicht nicht vergessen darf: das Ganze war keine Auftragsarbeit. Sondern vielmehr nur eine kleine Gefälligkeit im Rahmen des Forenalltags. Für den TO funktioniert das Teil hinreichend und ich schätze, solange es ihm die aufwendige Handarbeit erleichtert, nimmt eine etwas heftigere Tätigkeit der Garbage Collection sicherlich gerne in Kauf.

Und mich selbst hat zu diesem Thema hier auch nur der Aspekt der eigenen Wissenserweiterung verleitet.


als Antwort auf: [#561446]

Objekt-Literal

WernerPerplies
Beiträge gesamt: 2762

15. Dez 2017, 07:54
Beitrag # 9 von 9
Beitrag ID: #561451
Bewertung:
(2309 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin pixxxelschubser,

Zitat Was man trotzdem nicht nicht vergessen darf: das Ganze war keine Auftragsarbeit. Sondern vielmehr nur eine kleine Gefälligkeit im Rahmen des Forenalltags. Für den TO funktioniert das Teil hinreichend und ich schätze, solange es ihm die aufwendige Handarbeit erleichtert, nimmt eine etwas heftigere Tätigkeit der Garbage Collection sicherlich gerne in Kauf.

Klar, wobei es in dem Skript noch weiteres Potential zur Verbesserung der Geschwindigkeit gäbe.

Noch ein Hinweis zum Thema externe Datendatei:

Der Einsatz eines leistungsfähigen JSON-Parsers löst natürlich ganz nebenbei auch das Escape-Problem (\n & Co) in dem Skript.


als Antwort auf: [#561448]
X

Aktuell

Web / SEO / Blockchain / Betriebssystem
300

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

https://www.impressed.de/schulung.php?c=sDetail&sid=327

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!