Javascript:如果在数组中检查值,则返回数组名称

时间:2014-07-18 12:53:02

标签: javascript arrays

我正在尝试使用一些值创建一个数组,然后为一个变量分配一个数组中包含的值。如果是,我想返回数组的名称。

我已经达到以下目标(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>

有人可以指导我,提前谢谢。

2 个答案:

答案 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';
}

DEMO

答案 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';
}