Warum tut [5,6,8,7][1,2] = 8 in JavaScript?

Lesezeit: 1 Minute

Warum tut 568712 8 in JavaScript
Jo

Ich kann mich nicht um diese Eigenart kümmern.

[1,2,3,4,5,6][1,2,3]; // 4
[1,2,3,4,5,6][1,2]; // 3

Ich kenne [1,2,3] + [1,2] = "1,2,31,2"aber ich kann nicht finden, welcher Typ oder Vorgang ausgeführt wird.

Warum tut 568712 8 in JavaScript
Leichtigkeitsrennen im Orbit

[1,2,3,4,5,6][1,2,3];
      ^         ^
      |         |
    array       + — array subscript access operation,
                    where index is `1,2,3`,
                    which is an expression that evaluates to `3`.

Der Zweite [...] kann kein Array sein, also ist es eine Array-Subscript-Operation. Und der Inhalt einer tiefgestellten Operation ist keine begrenzte Liste von Operanden, sondern ein einzelner Ausdruck.

Lesen Sie mehr über den Kommaoperator Hier.

  • korrekt.. letzter verwendeter Index.. weitere Beispiele: [1,2,3,4,5,6][1,2,3] === [1,2,3,4,5,6][3]; [1,1,1,5,1,1][3] === [1,1,1,5,1,1][1,2,3]; auf diese Weise [1,1,1,5,1,1][3] == 5

    – Mastak

    14. September 2011 um 18:24 Uhr


1647257108 805 Warum tut 568712 8 in JavaScript
Mike Samuel

Weil (1,2) == 2. Sie sind über die gestolpert Komma-Operator (oder einfachere Erklärung hier).

Sofern Kommas nicht in Deklarationslisten, Parameterlisten, Objekt- oder Array-Literalen vorkommen, verhalten sie sich wie jeder andere binäre Operator. x, y bewertet xwertet dann aus y und liefert das als Ergebnis.

Warum tut 568712 8 in JavaScript
Imdad

[1,2,3,4,5,6][1,2,3];

Hier die zweite Box dh [1,2,3] wird [3] dh das letzte Element, so dass das Ergebnis beispielsweise 4 ist, wenn Sie es behalten [1,2,3,4,5,6] in einem Array

var arr=[1,2,3,4,5,6];

arr[3]; // as [1,2,3] in the place of index is equal to [3]

ähnlich

*var arr2=[1,2,3,4,5,6];

 // arr[1,2] or arr[2] will give 3*

Wenn Sie jedoch einen +-Operator dazwischen setzen, dient die zweite eckige Klammer nicht der Erwähnung des Index. Es ist eher ein anderes Array. Deshalb bekommst du

[1,2,3] + [1,2] = 1,2,31,2

dh

var arr_1=[1,2,3];

var arr_2=[1,2];

arr_1 + arr_2; // i.e.  1,2,31,2

Grundsätzlich wird es im ersten Fall als Index eines Arrays verwendet und im zweiten Fall ist es selbst ein Array.

1001300cookie-checkWarum tut [5,6,8,7][1,2] = 8 in JavaScript?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy