有没有办法使字符串等于数组中的数字?

时间:2019-01-30 03:29:44

标签: javascript arrays

我有一个输入文本字段,当用户从数组中的预选单词列表中键入内容时,它会自动提出建议。可以在以下情况下正常工作:

NewsList.js

但是我需要为每个城市分配一个数值,以使搜索正常进行...我是js的新手...我可以以某种方式编辑数组吗?

<div class="autocomplete" style="width:300px;">
  <input class="form-control" type="text" id="CITY" name="cityId" required>
</div>

var cities = ["Tampa","Atlanta","Denver","Detroit", etc.... ]

我只是想弄清楚如何为每个城市分配一个数值,所以当我提交表单时,method =“ get”将数字放在地址栏中,而不是城市名称

1 个答案:

答案 0 :(得分:1)

[
  {id: 1, city: "Tampa"},
  {id: 2, city: "Atlanta"},
  {id: 3, city: "Denver"},
  {id: 4, city: "Detroit"},
  {id: 5, city: "etc..."}
]

然后找到返回城市名称的javascript对象,并在其中添加“ .city”,以便向用户读取城市字符串。

类似

// return objectName;
return objectName.city;

并使用ID

做任何您想做的事情
objectName.id;

我建议您阅读一些有关对象/数组的知识,以及一些基本的Javascript101。将来使用哪种语言都没有关系,以任何语言理解这些东西都很重要。在整个堆栈中,所有语言的语法和逻辑都极为相似。

https://jsfiddle.net/是学习时进行实验的好地方,甚至可以与他人共享一些代码以了解更多信息。

编辑 现在,我看到您在帖子中添加了一些JS代码,您将必须修改它访问数组的每个部分。例如:

// arr[i].substr(0, val.length).toUpperCase() == .....
arr[i].city.substr(0, val.length).toUpperCase() == .....

您唯一的其他选择是将数组索引用作您的标识符,以限制对当前Javascript的编辑,但是如果数组发生更改,则会带来其他问题。如果最终您想稍后通过其号码(或ID)访问该城市,那么如果该数组更改长度或顺序,您将会遇到麻烦。选择你的毒药。