Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.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 如何将值存储在hashmap/数组中,以供以后比较_Javascript - Fatal编程技术网

Javascript 如何将值存储在hashmap/数组中,以供以后比较

Javascript 如何将值存储在hashmap/数组中,以供以后比较,javascript,Javascript,我需要循环1-100个潜在值,检查该值是否出现一次或两次,并根据该值执行某些操作。(这些值将仅显示0,1,2次)。是否有一种方法可以将生成的值存储在数组或hashmap中,并将生成的新值与hashmap中已有的其他值进行比较 我感谢你的帮助 编辑:我将提取的值是整数,所以我想我可以在hashmap中对所有值进行排序,然后从中进行比较?您可以使用对象概念来实现这一点 var obj = new Object(); function(val) { if (obj.val == undefi

我需要循环1-100个潜在值,检查该值是否出现一次或两次,并根据该值执行某些操作。(这些值将仅显示0,1,2次)。是否有一种方法可以将生成的值存储在数组或hashmap中,并将生成的新值与hashmap中已有的其他值进行比较

我感谢你的帮助


编辑:我将提取的值是整数,所以我想我可以在hashmap中对所有值进行排序,然后从中进行比较?

您可以使用对象概念来实现这一点

var obj = new Object();

function(val) {
    if (obj.val == undefined) {
        obj.val = 1;
    } else {
        obj.val++;
    }
}

console.log(obj);

您可以使用“对象”概念来完成此操作

var obj = new Object();

function(val) {
    if (obj.val == undefined) {
        obj.val = 1;
    } else {
        obj.val++;
    }
}

console.log(obj);

除非我误解了你,否则你可以直接使用JavaScript对象。你想干什么

hash = {};

// Count the number of times each value occurs in the values array.
for (var i = 0; i < values.length; i++) {
    if (!hash[values[i]]) {
        hash[values[i]] = 1;
    } else {
        hash[values[i]] += 1;
    }
}
hash={};
//计算每个值在值数组中出现的次数。
对于(变量i=0;i
除非我误解了你,否则你可以直接使用JavaScript对象。你想干什么

hash = {};

// Count the number of times each value occurs in the values array.
for (var i = 0; i < values.length; i++) {
    if (!hash[values[i]]) {
        hash[values[i]] = 1;
    } else {
        hash[values[i]] += 1;
    }
}
hash={};
//计算每个值在值数组中出现的次数。
对于(变量i=0;i
您始终可以将元素映射到它出现的次数。因此,如果
5
出现
3次,您的地图将是:

{ 5: 3 }
因此,每次获得一个值时,如果地图包含一个条目,则更新地图,或者创建一个计数为
1
的新条目:

var map = {};
function addValue(value) {
    if(!map[value]) {
        map[value] = 0;
    }

    map[value]++;
} 
那么你所要做的就是:

for(var i = 0; i < values.length; i++) {
    addValue(values[i]);
}

现在您有了一个排序键数组。

您始终可以将元素映射到它出现的次数。因此,如果
5
出现
3次,您的地图将是:

{ 5: 3 }
因此,每次获得一个值时,如果地图包含一个条目,则更新地图,或者创建一个计数为
1
的新条目:

var map = {};
function addValue(value) {
    if(!map[value]) {
        map[value] = 0;
    }

    map[value]++;
} 
那么你所要做的就是:

for(var i = 0; i < values.length; i++) {
    addValue(values[i]);
}

现在你有了一个排序键数组。

Hashmaps(或者只是对象,在JS中通常称为对象)没有任何被排序的概念(在JS中)。它们是一组键-值对,您可以通过知道键直接访问值,也可以按照不保证的顺序迭代键。另一方面,数组可以被排序,因为顺序对它们很重要。Hashmaps(或者只是对象,在JS中通常被称为对象)没有任何被排序的概念(在JS中)。它们是一组键-值对,您可以通过知道键直接访问值,也可以按照不保证的顺序迭代键。另一方面,数组是可以排序的,因为顺序对它们很重要。
function(var val)
对于函数声明来说是无效的JavaScript(丢失
var
)。很抱歉,你解释了@ajp15243我不明白WTU的意思,你在示例代码中声明了一个匿名函数,但你做得不对。函数参数列表中不应该有
var
,因为JavaScript不是这样声明函数参数的。签名应简单地读取
函数(val){…}
。尽管没有名称、变量赋值或立即执行,匿名函数是不可访问/不可执行的。
function(var val)
不是函数声明的有效JavaScript(丢失
var
)对不起,你解释一下@ajp15243我不明白你说你在示例代码中声明了一个匿名函数,但你做得不对。函数参数列表中不应该有
var
,因为JavaScript不是这样声明函数参数的。签名应简单地读取
函数(val){…}
。尽管在没有名称、变量赋值或立即执行的情况下,匿名函数是无法访问/执行的。