javascript - 在函数中使用动态选择的数组(javascript)

标签 javascript jquery

我有一个函数可以在单击时获取元素的值,然后我想使用它来匹配稍后在脚本中的 Bootstrap 提前输入中使用的数组。例如:

var use = [];

$('.dropdown-menu > li > a').on("click", function() {
    use = $(this).data('name');
    alert(use);
});

如果选择的数据名称属性是“cat”,那么“use”变量将等于“cat”,并且我们有一个“cat”数组:

var cat = [
    {val: 'res', string: "Residential"},
    {val: 'Dup', string: "Duplexes & Apartments"},
    {val: 'Con', string: "Condominiums"},
    {val: 'Lot', string: "Lots, Land & Farms"},
    {val: 'Com', string: "Commercial"},
    {val: 'Mob', string: "Mobile Homes"},
];

然后我不知道如何处理这个问题。我不想在下面的函数中使用“cat”,而是想将“cat”替换为与上面选择的数据名称匹配的任何函数。

$('#input-tag').typeahead({
    source: function(query, process) {
            var results = _.map(cat, function(value) {
                return value.val;
            });
            process(results);
    }
});

我希望我的解释是正确的。我想我今晚有点超出头脑了!

最佳答案

您可以创建一个对象,其中键是数据源(例如 cat),值是数组:

var obj = {
   "cat" :  [
    {val: 'res', string: "Residential"},
    {val: 'Dup', string: "Duplexes & Apartments"},
    {val: 'Con', string: "Condominiums"},
    {val: 'Lot', string: "Lots, Land & Farms"},
    {val: 'Com', string: "Commercial"},
    {val: 'Mob', string: "Mobile Homes"}
],
   "dog": [ {val: 'res', string: 'Dunno' }]
};

然后你可以通过这种方式获取正确的数组:

var data = $(this).data('name'); // 'cat';
var catArr = obj[data];

关于javascript - 在函数中使用动态选择的数组(javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31446044/

相关文章:

javascript - 通过 JS API 添加标记到 mapbox map 然后 "save"

php - 在 javascript .replace 中使用正则表达式翻译 preg_replace

javascript - 跨浏览器 JavaScript 输入实时更改/粘贴检测

javascript - 如何使用 JavaScript 将 html 页面内容保存在 .txt 文件中?

javascript - 如何将数组附加到下拉导航栏并禁用其中的一个选项

c# - 保护 Web 方法

javascript - 如何强制 spring-security 将未经授权的用户重定向到特定页面?

php - CakePHP 创建没有 Action 的表单

javascript - 如何使用 html2canvas 从 svg 显示和保存图像为 jpg 或 png?

javascript - 函数结束后文本框值被清除(问题): JQuery