请教 js中嵌套3层for 如何优化掉呢。3层for用来遍历数组的
无标题文档var reg = {
isnan: /^[\D]+$/
}
function interface(name, methods) {
if (!(reg.isnan.test(name) && arguments.length <= 2 && methods.constructor === Array)) {
throw "接口对象属性值不能<2 methods必须是数组类型 name必须是string类型"
}
for (var i = 0; i < methods.length; i++) {
if (!reg.isnan.test(methods[i]) || typeof methods[i] !== "string") {
throw "接口抽象方法名类型必须是string"
}
}
this.name = name;
this.method = methods;
}
function test() {
this.s = function() {}
this.w = function() {}
}
var test1 = new test();
function test3() {
this.s = function() {}
this.w = function() {}
}
var test1 = new test();
var test2 = new test3();
var b = new interface("s", ["s", "w"]);
var d = new interface("s", ["s", "w"]);
interface.checkImplement = function(object) {
if (arguments.length < 2 || object.constructor !== Array) {
throw "您并没有给指定的2个属性参数赋值,因此并不做接口规范检查"
}
interface.objects = object;
for (var i = 1; i < arguments.length; i++) {
var interobj = arguments[i];
if (interobj.constructor !== interface) {
throw "这个接口对象属性值必须是object并且constroctur必须是接口 类"
}
for (var j = 0; j < interobj.method.length; j++) {
var method = interobj.method[j];
for (var k = 0; k < interface.objects.length; k++) {
if (!interface.objects[k][method] || typeof interface.objects[k][method] !== "function") {
throw "object类没有实现接口 抽象方法,或者值不是一个function"
}
}
}
}
}
interface.checkImplement([test1, test2], b, d)
相关阅读:
Flask 连接sqlite 提示 has no attribute 'cursor'
mcrypt如何对已加密的字符串解密?
安卓Activity切换动画无法控制
一张数据表如何设置两个或多个外键?(已经更新了后续的问题,见链接)
tp框架大神来看看
Android有没有代替ProgressDialog的比较好的库
pylot 怎么去发送文件
Highcharts DOM阻塞、卡顿
求一个js正则表达式
node中如何读取远程的图片并显示出来?
桌面WEB应用自适应问题
IndexedDB 无法正常按照多条件range取到值
谣言抑制算法
嵌入式开发板连接PC机
Node.js 如何实现请求拦截及转发?
关于cell上图片阴影问题
xcode生成规范注释
rbac用户权限控制的疑问?
preg_replace中在替换参数怎么引用命名捕获组?
七牛生成缩略图的技术名称叫什么?