我正在尝试使用一些值创建一个数组,然后为一个变量分配一个数组中包含的值。如果是,我想返回数组的名称。
我已经达到以下目标(http://jsfiddle.net/4DhqW/1/)
<script>
var internal = 'WKF1';
Daily = [WKF1,WKF2,WKF3,WKF3,WKF4,WKF5];
Weekly = [WKF6,WKF7,WKF8];
Monthly = [WKF9,WKF10];
function frequency(wkf, array) {
if (wkf in //arrays daily weekly monthly ) {
return //array name
}
}
document.write(frequency(internal)); //this should return the name of the array
</script>
有人可以指导我,提前谢谢。
答案 0 :(得分:1)
我认为您应该将数组作为对象的值。这将允许您轻松获取数组的名称(键)。确保引用数组值。
var obj = {
Daily: ['WKF1', 'WKF2', 'WKF3', 'WKF3', 'WKF4', 'WKF5'],
Weekly: ['WKF6', 'WKF7', 'WKF8'],
Monthly: ['WKF9', 'WKF10']
}
function frequency(wkf, obj) {
for (var k in obj) {
if (obj[k].indexOf(wkf) > -1) {
return k;
}
}
return 'None found';
}
答案 1 :(得分:1)
您可以将所有数组内联到函数中并执行此操作:
if (['WKF1','WKF2','WKF3','WKF3','WKF4','WKF5'].indexOf(wkf) != -1) {
return 'Daily';
} else if (['WKF6','WKF7','WKF8'].indexOf(wkf) != -1) {
return 'Weekly';
} else if (['WKF9', 'WKF10'].indexOf(wkf) != -1) {
return 'Monthly';
}