Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中将计数器与数组的每个成员关联的好方法?_Javascript - Fatal编程技术网

在Javascript中将计数器与数组的每个成员关联的好方法?

在Javascript中将计数器与数组的每个成员关联的好方法?,javascript,Javascript,我在Javascript中有一个字符串数组,比如'var elements=[“string1”,“string2”];数组是动态创建的,因此它可以包含任意数量的字符串。我想将计数器与数组的每个元素相关联。计数器将在网页的生命周期内递增或递减 我打算尝试元素[“string1”]。counter=1;但它不起作用 实现这一点的好方法是什么?这可能会对您有所帮助 elementArray = ["string1", "string2"] function setCounter(str, val)

我在Javascript中有一个字符串数组,比如'var elements=[“string1”,“string2”];数组是动态创建的,因此它可以包含任意数量的字符串。我想将计数器与数组的每个元素相关联。计数器将在网页的生命周期内递增或递减

我打算尝试
元素[“string1”]。counter=1
;但它不起作用

实现这一点的好方法是什么?

这可能会对您有所帮助

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=[“string1”、“string2”]
函数设置计数器(str,val){
for(var i=0;i

或者只访问
elementArray[index]。counter

如果您有一个数组
var elements=[“string1”,“string2”]
,则无法访问带有
elements[“string1”]
的元素,您使用的是值而不是索引<代码>元素[0]
是使用数字键访问元素的正确形式

即使这样,字符串也是一种特殊类型的对象,似乎不容易获取额外的参数,至少在我刚才测试时是这样。这很奇怪

您可以快速地将数组放入一组具有单独文本和计数器组件的对象中

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

for(var index = 0; index < elements.length; index++) {
    elementsWithCounter[i] = { text: elements[index], counter: 1 };
}
var元素=[“string1”、“string2”];
var elementsWithCounter=[];
对于(var索引=0;索引
Javascript原语/内置对象不能将属性/属性添加到其原型中(即String.prototype.counter=-1不能正常工作)。图像、字符串、日期和数组都不能添加属性

也许您应该将其设置为对象,而不是字符串,类似于Orbling发布的内容。

您还可以使用普通对象创建“哈希表”,例如:

var counter = {};

for(var i = elements.length; i--; ) {
    counter[elements[i]] = 1;
}
然后,您可以使用以下方法增加计数器:

counter['string1'] += 1;


你能把你试过但不起作用的代码包括进来吗?这句话说它不起作用。我不知道你还要什么。该死的,你不能这么做!我真的希望字符串是对象。
counter[elements[0]] += 1;