如果我将数组名称作为字符串传递给JS函数,那么如何在函数内部循环
If I passed array name as a string to a JS function, then how to loop through it inside the function?
我有一个大的对象数组。我想做一个高级搜索功能,我称之为:
var x = searcArray('students.id=5','history.date=2015/10/10',and more args);
然后函数将循环遍历学生数组并搜索id=5然后循环浏览学生内部的历史,并搜索日期=2015/10/10
然后返回该数组或对象
那么,如何使用JavaScript或JQuery?
在vanilla js中,您可以使用Array Filter或Array Find但是存在许多库作为underscore.js
您可以使用关键字arguments
,它基本上是一个数组,它包含函数中传递的所有参数:
function searcArray(){
var arr = Array.prototype.map.call(arguments, function(item){
return item.split('=')[1]
})
document.body.innerHTML = '<pre>'+ JSON.stringify(arr) + '</pre>';
}
searcArray('students.id=5', 'history.date=2015/10/10');
我试过这样,在这里检查
window.students = {'id':5};
window.history = {'date':'2015/10/10'};
function searcArray(){
var arr = arguments;
var results = [];
for(var i=0;i<arr.length;i++){
var searchQuery = arr[i].split("=")[0];
var searchTarget = arr[i].split("=")[1];
var searchQueryArray = searchQuery.split(".")[0];
var searchQueryIndex= searchQuery.split(".")[1];
if(window[searchQueryArray][searchQueryIndex] == searchTarget){
results.push(1);
}else{
results.push(0);
}
}
return results;
}
var x = searcArray('students.id=5','history.date=2015/10/10');
console.log(x);
相关文章:
- 为什么我的控制器没有启动函数.js脚本
- 在函数js中传递变量
- 如何在单独的文件中调用函数 js.
- 在铯中调用函数.js当事件被尝试时
- 只有setTimeout执行函数.JS
- 为什么图像选择器程序中的这个函数 js 不起作用
- 获取邮件中的信息.php从函数.js解析为manage.html
- 如何从应用程序中调用JS函数.js在Rails4视图中
- Uncatch TypeError: obj.attr 不是函数 JS
- 从 C++ 节点调用 JavaScript 函数.js扩展
- 调用 Backbone 内部的外部函数.js的视图初始化方法
- 如何使用 Scala 创建 JavaScript 函数.js
- 使用带有下划线循环的回调函数.js骨干.js项目不起作用
- 获取字段值的函数-JS
- 函数js不能递归调用自己的函数
- 在函数JS中创建带有地理代码的标记
- 循环内部的函数(js/jquery)
- 我需要帮助将此代码添加到jQuery函数.js文件中
- 未捕获类型:未定义不是函数JS错误
- 停止多个内联函数JS的事件传播