2016-08-30 2 views
0

Ich verwende ein 2D-Array, um das Auftreten eines Werts zu verfolgen, aber ich habe Probleme, den Wert der zweiten Dimension zu manipulieren. Meine Syntax ist definitiv ausgeschaltet, da ich eine Ganzzahl in der 2D-Datei speichere, aber keine manipulierbare Ganzzahl zurückbekommen kann.Zugriff auf Datenproblem in 2D-Array

var list_elm = [occur1, 0], [occur2, 0] ...; 
//stuff that checks for instances 
var getNum = list_elm[[list_elm.length - 1][0]]; //last array item's second part 
list_elm[[list_elm.length - 1][0]] += 1; //this version produces a string "01111..." 
list_elm[[list_elm.length - 1][0]] = getNum++; //this produces NaN 

Ich versuche zu erhöhen: list_elm [...] [diese one].

+0

was ist das eigentliche Array? Klingt so, als ob Sie sich so verhalten, als hätten Sie eine Nummer, aber in Wirklichkeit haben Sie eine Saite. – epascarello

Antwort

1

Sie greifen auf den Index zu, der eine Zeichenkette ist. Sie benötigen Zugriff auf den Index 1. Außerdem haben Sie extra [ ] in der Syntax. Um den 2D-Array zuzugreifen, schreiben Sie so etwas wie array[1][0] aber was Sie haben, ist array[[1][0]] was falsch ist

ändern Syntax Index 1 und Entfernen von zusätzlichen Verstrebungen

list_elm[list_elm.length - 1][1] += 1;

var getNum = list_elm[list_elm.length - 1][1];

0

Sie Punkt muss tatsächlich das numerische Zeichen von Ihrer Zeichenfolge erhalten. Wenn Sie ParseInt direkt auf Ihre Zeichenfolge anwenden, erhalten Sie NAN, weil das erste Zeichen nicht in eine Zahl umgewandelt werden kann.

Sie können den zweiten Schritt vermeiden, wenn Ihr Wert '1occur' ist. In diesem Fall können Sie es direkt als int analysieren.

var list_elm = [['occur1', 0], ['occur1', 0]]; 
 

 
var elm = list_elm[list_elm.length-1][0]; // get the string 'occur1' 
 
elm = parseInt(elm.substr(elm.length-1)); // get 1 from 'occur1' and covert it to integer. 
 
elm++; 
 
console.log(elm);

Verwandte Themen