Javascript,检查多个数组的数字
Javascript, check multiple arrays for number
我在这里寻找最好的解决方案,我有一个想法,但认为它可以做得更漂亮。
我正在制作一个简单的天气应用程序。我正在使用雅虎天气API,因为他们有天气状况的代码。
根据条件,我给出一个代码。现在,有 50 个代码,我将它们分为 5 类。就我而言,例如,我的分类 Snow 包含 15 个雅虎的条件代码。
好吧,如果您有更好的主意(我敢打赌有),请随时提出建议。
我的想法是从一组数组中返回匹配值,而不是如何做到这一点。
我的代码现在如下所示:
function getCondition(code) {
var snow = [1, 2, 3],
sun = [4, 5, 6];
}
我需要的是包含代码匹配编号的变量名?
我做了一个JS小提琴http://jsfiddle.net/BH8r6/
最快的查找(将雅虎代码转换为您的标签)是将代码用作数组键(如果它们是顺序的)。
var weather = [];
weather[0] = "no_weather";
weather[1] = "snow";
weather[2] = "snow";
weather[3] = "snow";
weather[4] = "sun";
weather[5] = "sun";
weather[6] = "sun";
function getCondition(code) {
return weather[code];
}
当你的键是你的变量名,而你的值是变量名的对应代码时,你为什么不尝试一个关联数组,这样你的代码将是这样的:
var myCodeArray=[];
myCodeArray["snow"]=[1, 2, 3];
myCodeArray["sun"] = [4, 5, 6];
现在你的方法 getCondition 将是
function getCondition(code)
{
for(var definedCodeName in myCodeArray)
{
if(myCodeArray.hasOwnProperty(definedCodeName))
{
var array=myCodeArray[definedCodeName ];
for(var i=0;i<array.length;i++)
{
if(array[i]==code){
return definedCodeName ;}
}
}
}
return "Not found";
}
演示
为什么要使一切复杂化?!只需使用'switch'
:
function getCondition(code) {
switch( code ){
case 1:
case 2:
case 4:
case 6:
return "snow";
case 3:
case 8:
case 9:
return "sun";
case 5:
case 7:
case 10:
return "cloudy";
}
return "none";
}
相关文章:
- JavaScript 在数组中查找缺少的数字
- 在javascript数组中分散数字
- 将数组键转换为数字node.js
- 删除JS数组中的最小数字
- 创建具有2个唯一数字的Javascript数组
- Javascript按数字顺序排序()数组
- 如何将数字切成更小的数字以适合我的数组
- Javascript中的非数字索引多维数组
- 指定数组中的元素对,其总和等于特定的目标数字
- 从数组/字符串中删除所有小数和单个数字
- 从数组[Javascript]的总长度中减去一个干净的数字
- 如何获取数组中数字的最大出现次数
- 如何将数字相加并将结果放入数组中
- JS:从数组中查找特定范围内的最低/最高数字
- 返回最大数字的数组
- 将数组中的所有数字组合相加
- 在数组中生成随机数,没有任何重复的数字
- 循环遍历数字和字母数组并仅提取数字
- 给定一个带有数字的数组,我如何编写一个递归函数,当 2 个元素加起来为一个目标时,它会在数组中查找索引
- 如何将数组(数字)加载到谷歌应用脚本 Byte[] 中