我有一堆有用的功能,这些功能是我一生中收集的.
function one(num){
return num+1;
}
function two(num){
return num+2;
}
Run Code Online (Sandbox Code Playgroud)
我可以打电话给他们 two(two(one(5)))
但我更愿意使用 (5).one().two().two()
如何在不使用原型的情况下实现此目的?
我试图看看下划线链是如何工作的,但是他们的代码太强烈而无法理解它
每当我使用数组时,我总是使用该[]
样式,但是,当我想创建一个具有固定数量的元素的数组时new Array(N)
(我不知道其他任何方式)
我认为这不是什么大问题,直到我读到这些强烈的话:
任何人这样做,使用"new Array()"而不是"[]",或"new Object()"而不是"{}"需要重新学习JavaScript.
我真的想避免写错代码.有谁介意告诉我正确的方向去?
我不知道糟糕的crossbrowser兼容性array.indexOf()
.但是现在我,我需要找到一种方法来实现相同的东西,但不使用以前的方法.
我尝试了谷歌搜索一段时间,但没有找到真正有说服力的答案.现在,我正在使用循环(但这很慢,我相信有更好的方法)
附注:
我认为没有必要共享我的代码,因为你们都知道数组循环检查是什么样的(加上它会降低你的智商)
我目前有一个运行大约200次的功能.
功能看起来像这样:
function GetB(av,bol){
var bxes=[
["11","12","13","21","22","23","31","32","33"],
["14","15","16","24","25","26","34","35","36"],
["17","18","19","27","28","29","37","38","39"],
["41","42","43","51","52","53","61","62","63"],
["44","45","46","54","55","56","64","65","66"],
["47","48","49","57","58","59","67","68","69"],
["71","72","73","81","82","83","91","92","93"],
["74","75","76","84","85","86","94","95","96"],
["77","78","79","87","88","89","97","98","99"]
];
//code
}
Run Code Online (Sandbox Code Playgroud)
我的第一个问题是这个数组正在减慢一切因为我认为它每次都重写数组bxes
(或类似的东西)
这个bxes
数组永远不会被修改,我不介意把它变成一个全局数组.
我运行了一些测试,数据表明jQuery inArray()
比简单的循环慢得多.
并且array.indexOf()
甚至没有进行测试,因为我之前做过其他测试,而且表现更差.
必须有充分的理由不使用它:
for(var i=0,len=arr.length,rtn=-1;i<len;i++){
if(arr[i]==="arritem"){
rtn=i;
break;
}
}
Run Code Online (Sandbox Code Playgroud) 我的代码完全可以在我的计算机上运行,在我的所有浏览器上(包括ie),但我无法让它在jsFiddle上运行.
问题似乎是:
window.onload=function(){
document.body.innerHTML+=brd+log;
}
Run Code Online (Sandbox Code Playgroud)
但无论有没有,我都试过了window.onload
.我完全无能为力,我开始失去所有的希望
CSS(可选):
*{margin:0;padding:0;}
#brd{margin:15px auto;}
#brd,#brd td,#log{border:1px solid #000;}
#brd td{height:47px;width:45px;text-align:center;font-size:30px;}
#brd span{font-size:12px;}
#log{margin:15px auto;padding:20px;width:385px;max-height:150px;overflow:auto;background:#F0F0F0;color:#000;}
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
var i,sdk,rem,log,perf,brd,bxes=[["11","12","13","21","22","23","31","32","33"],["14","15","16","24","25","26","34","35","36"],["17","18","19","27","28","29","37","38","39"],["41","42","43","51","52","53","61","62","63"],["44","45","46","54","55","56","64","65","66"],["47","48","49","57","58","59","67","68","69"],["71","72","73","81","82","83","91","92","93"],["74","75","76","84","85","86","94","95","96"],["77","78","79","87","88","89","97","98","99"]];
/*Array Find*/
function arrFind(fnd,frm,bol){
var ii,len,rtn=-1;
for(ii=0,len=frm.length;ii<len;ii++){
if(frm[ii]==fnd){
rtn=ii;
break;
}
}
return bol?rtn>-1:rtn;
}
/*To RC*/
function toRC(val){
var ii,len,aa=[];
val=val.split(",");
for(ii=0,len=val.length;ii<len;ii++){
aa.push(Math.ceil((parseInt(val[ii])+1)/9)+""+((parseInt(val[ii])%9)+1));
}
return aa.join(",");
}
/*To AV*/
function toAV(rc){
var ii,len,aa=[];
rc=rc.split(",");
for(ii=0,len=rc.length;ii<len;ii++){
aa.push((((parseInt(rc[ii].charAt(0))-1)*9)+(parseInt(rc[ii].charAt(1))-1))+"");
}
return aa.join(",");
}
/*Get Box*/
function getBox(av,bol){
var ii,jj,len,ss,zz,aa=[];
if(!bol){
av=toRC(av);
}
av=av.split(","); …
Run Code Online (Sandbox Code Playgroud) 我见过很多次这样的事情:
function customArrayIndexOf(item, array){
for (var i = 0, l = array.length; i < l; i++) {
if (i in array && array[i] === item) return i;
}
return -1;
}
Run Code Online (Sandbox Code Playgroud)
但是,我不确定为什么i in array
需要.
我有三个问题:
我是c#的新手,我不明白为什么这不起作用.我想拆分以前拆分的字符串.
我的代码如下:
int i;
string s;
string[] temp, temp2;
Console.WriteLine("write 'a-a,b-b,c-c,d-d'";
s = Console.ReadLine();
temp = s.Split(',');
for (i = 0; i < temp.Length; i++)
temp2[i] = temp[i].Split('-');
Run Code Online (Sandbox Code Playgroud)
我收到以下错误 Cannot implicitly convert type 'string[]' to 'string
我想结束:
temp = {a-a , b-b , c-c , d-d};
temp2 = {{a,a},{b,b},{c,c},{d,d}};
Run Code Online (Sandbox Code Playgroud) 我希望得到一个列表,列出所有要评估的值,true
或者false
使用差等式检查!=
,==
甚至是if()
我有一个列表,我收集了多年,但它与我的PC死了
以下函数使用短路操作符0
作为默认值返回:
function custNumParse(str){
return str*1||0;
}
Run Code Online (Sandbox Code Playgroud)
我不确定这将返回第二个(我的意思是,我知道它将在str*1
无法评估时true
),但我不确定在乘以时哪些输入可以产生该输出1
.
我知道虚假的价值观0, "", false, null, undefined, NaN
,但这对我没有多大帮助.
换句话说,当我将这个函数与对象或布尔值等一起使用时,我会发生什么事情.我知道我可以测试它们,但我确信有一个更容易的方法去
关于什么是最合适的方法找到这些家伙而不测试它们的任何想法?
我正在尝试将JavaScript开关转换为C#.
我收到了错误 Error 3 Cannot implicitly convert type 'bool' to 'int'
switch (numero)
{
case (numero > -1 && numero < 16):
rtn = list1[numero] + " " + str2;
if (primerDigito != 1)
{
rtn += "s";
}
break;
case (numero > 15 && numero < 30):
if (numero != 20)
{
rtn = list2[primerDigito] + list1[segundoDigito];
}
else
{
rtn = "veinte";
}
rtn += " " + str2 + "s";
break;
case (numero > 29 && numero …
Run Code Online (Sandbox Code Playgroud)