带有值与值数组的字符串

时间:2016-05-24 16:54:09

标签: javascript arrays string if-statement

在我开始工作之前很久就开始使用的文件有一个包含53个不同数值的列表。但是它们都被列为逗号分隔的字符串,例如:

var numbers = "1,2,3,4,5,...,48,49,50";

稍后在脚本中,当检查传入的变量是否存在时,它会使用:

if(numbers.indexOf(String(x),0) < 0) {/*do stuff*/} else {/*do other stuff*/}

虽然这有效,但我不知道为什么选择这种做法而不是将其作为一组数字。那么在性能方面会更加优化,然后按照目前的设置方式进行吗?

1 个答案:

答案 0 :(得分:0)

使用逗号以对象分隔的快速访问字符串内容的建议。

&#13;
&#13;
var numbers = "1,2,3,4,5,6,48,49,50",
    object = Object.create(null), // create empty object without any properties/prototypes
    x = 48;

numbers.split(',').forEach(function (a, i) {
    object[a] = i; // position of item
});

// usage
if (x in object) {
    /*do stuff*/
    alert('pos: ' + object[x]);
} else {
    /*do other stuff*/
}
&#13;
&#13;
&#13;