Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.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_Arrays_Search - Fatal编程技术网

如何从调查中查找地名数组中的相同字符串(使用javascript)

如何从调查中查找地名数组中的相同字符串(使用javascript),javascript,arrays,search,Javascript,Arrays,Search,这是我第一次来这里,所以请原谅我,如果答案是显而易见的-但在任何地方都找不到可能的解决方案 我正试图从我想进行的一项调查中提取数据,这项调查将生成一份城市列表。因此: var cities = array ['city1', 'city2', 'city3', 'city2', 'city4', 'city1', city2']; 将生成一个列表:城市1:2、城市2:3、城市3:1、城市4:1 在Javascript中有没有一种方法可以遍历这样的数组?城市不是预先确定的(人们可以进入任何地

这是我第一次来这里,所以请原谅我,如果答案是显而易见的-但在任何地方都找不到可能的解决方案

我正试图从我想进行的一项调查中提取数据,这项调查将生成一份城市列表。因此:

var cities =  array ['city1', 'city2', 'city3', 'city2', 'city4', 'city1', city2']; 
将生成一个列表:城市1:2、城市2:3、城市3:1、城市4:1

在Javascript中有没有一种方法可以遍历这样的数组?城市不是预先确定的(人们可以进入任何地方)

提前谢谢你能给我的任何帮助

蒂姆

答案是“显而易见”。。。如果你知道从哪里开始。这是起点:

  • 创建一个对象(文本,
    {}
  • 遍历数组。对于每个项目:
    • 如果该项不作为对象的键存在,请创建值为0的键
    • 将对象上的关键点增加1
而且。。。完成!这就是问题的全部。

答案是“显而易见”。。。如果你知道从哪里开始。这是起点:

  • 创建一个对象(文本,
    {}
  • 遍历数组。对于每个项目:
    • 如果该项不作为对象的键存在,请创建值为0的键
    • 将对象上的关键点增加1

而且。。。完成!这就是一切。

就像尼特已经回答的那样: 浏览列表,将关键点放入对象中,并增加值

var generatedList = {};
for(var i=0;i<cities.length;i++){
    if(generatedList[cities[i]]){
        generatedList[cities[i]]++;
    }else{
        generatedList[cities[i]] = 1;
    }
}
var generatedList={};

对于(var i=0;iLike Niet已经回答: 浏览列表,将关键点放入对象中,并增加值

var generatedList = {};
for(var i=0;i<cities.length;i++){
    if(generatedList[cities[i]]){
        generatedList[cities[i]]++;
    }else{
        generatedList[cities[i]] = 1;
    }
}
var generatedList={};

对于(var i=0;i自我启动此演示以来,已经回答了这个问题,但这应该有助于您了解发生了什么。在打开开发人员控制台的情况下打开此演示以查看输出:

var cities = new Array('city1', 'city2', 'city3', 'city2', 'city4', 'city1', 'city2');

var citiesObject = {};

for (var x = 0; x < cities.length; x++)
{
    if (citiesObject[cities[x]])
    {
        citiesObject[cities[x]]++
    }
    else
    {
        citiesObject[cities[x]] = 1;
    }
}
var cities=新数组('city1','city2','city3','city2','city4','city1','city2');
var citiesObject={};
对于(var x=0;x
自从我启动此演示以来,已经回答了这个问题,但这应该有助于您了解发生了什么。打开此演示并打开开发人员控制台以查看输出:

var cities = new Array('city1', 'city2', 'city3', 'city2', 'city4', 'city1', 'city2');

var citiesObject = {};

for (var x = 0; x < cities.length; x++)
{
    if (citiesObject[cities[x]])
    {
        citiesObject[cities[x]]++
    }
    else
    {
        citiesObject[cities[x]] = 1;
    }
}
var cities=新数组('city1','city2','city3','city2','city4','city1','city2');
var citiesObject={};
对于(var x=0;x
这个答案很准确,但我已经开始了我的JSFIDLE尝试,所以我还是发布了。+1给你:)注意:如果城市名称中有空格或奇怪的字符,你只能使用数组符号访问它,即
generatedList['New York']
而不是普通的对象属性表示法,即
generatedList。London
这个答案很准确,但我已经开始了我的JSFIDLE尝试,尽管如此。+1告诉你:)注意:如果城市名称中有空格或奇怪的字符,你只能使用数组表示法访问它,即
generatedList['newyork']
而不是普通的对象属性表示法,即
generatedList.London