Good way to associate a counter with every element of an array in Javascript?

I have an array of strings in Javascript, for example `var elements = [" string1 "," string2 "]; An array is created dynamically, so it can contain any number of rows. I want to associate a counter with each element of the array. The counter will increase or decrease over the life of the web page.

I was going to try element["string1"].counter = 1; but it didn’t work.

What a good way to implement this?

+3
source share
4 answers

You can also create a hash table using a simple object, for example:

var counter = {};

for(var i = elements.length; i--; ) {
    counter[elements[i]] = 1;
}

Then you can increment the counter with:

counter['string1'] += 1;

or

counter[elements[0]] += 1;
+2
source

var elements = ["string1", "string2"], elements["string1"], , . elements[0] - .

, , , , , . .

.

var elements = ["string1", "string2"];
var elementsWithCounter = [];

for(var index = 0; index < elements.length; index++) {
    elementsWithCounter[i] = { text: elements[index], counter: 1 };
}
+4

Javascript-/ /, (.. String.prototype.counter = -1 ). , String, Date, Array .

, , , Orbling.

0

.

elementArray = ["string1", "string2"]

function setCounter(str, val) {
    for (var i = 0; i < elementArray.length; i++) {
        if (str === elementArray[i]) elementArray[i].counter = val;
    }
}

function getCounter(str) {
    for (var i = 0; i < elementArray.length; i++) {
        if (str === elementArray[i]) return elementArray[i].counter;
    }

}

setCounter("string1", 5);
getCounter("string1");

elementArray[index].counter

-1
source

Source: https://habr.com/ru/post/1789889/


All Articles