Fork me on GitHub
魔芋铃

一些JavaScript题目

Q:如何将一个数组的内容复制到另外一个数组?
A:
jscript.array.copyArray = function(isSrcArray,inDestArray)
{
 var i;
 for(i = 0; i < inSrcArray.length; i++)
 {
  inDestArray.push(inSrcArray[i]);
 }
 return inDestArray;
}// End copyArray()
 
把inSrcArry的中每一个元素都添加到inDestArry中。返回inDestArray.
 
 

Q:怎样在一个数组中查找指定的元素呢?
假设用户在页面中输入一系列的值。看起来合理的是应该把他们放到一个数组中 。 
 
A:
jscript.array.findInArray = function(inArray,inValue)
{
 var i;
 for(i = 0;i<inArray.length;i++)
 {
 if(inArray[i] == inValue)
 {
 return i;
 }
 }
 return -1;
}
//遍历数组所有的值是否等于我们要找的值,然后返回下标值。找不到返回-1.这个几乎是任何类型的查找中“不,没有找到”的常见返回值。
 
 

Q:假设我有一个数组,如何计算数组中所有值的平均值?
 
A:
jscript.array.arrayAverage = function(inArray) {
 var accmulatot = 0;
 var i = 0;
 for(i = 0; i< inArray.length;i++)
 {
  accmulator += inArray[i];
 }
 return accmulator / inArray.length;
}
 
//累加数组中的所有值,再除以长度。
 
 

Q:如何获取正在使用应用程序的浏览器的标示信息?
A:
jscript.browser.getBrowserIdentity = function() {
 return navigator.appName + " " + navigator.appVersion;
}
//返回一个字符串,它由浏览器的名称和版本组成。
 
 

Q:如何轻松的知道一个给月有多少天?比如用户输入31.我就需要确定输入的月份是有31天的?
 
A:
jscript.datetime.getNumberDaysInMonth = function(inMonth,inYear)
{
 inMonth = inMonth - 1;
 var leap_year = this.inLeapYear(inYear);
 if(leap_year)
 {
 leap_year = 1;
 }
 else
 {
 leap_year = 0;
 }
 
 if(inMonth == 3 || inMonth == 5 || inMonth == 8 ||inMonth ==10)
 {
 return 30;
 }
 else if(inMonth == 1)
 {
 return 28 + leap_year;
 }
 else
 {
 return 31;
 }
}
 
判断输入的年是否为一个闰年,要实现这个功能,我们要再写一个名为isLeapYear()的函数用于检测
。闰年的2月由29天。
我们要记住4月,6月,9月。11月有31天。
 
 

jscript.datetime.isLeapYer = function(inYear) {

if((inYear % 4 == 0 && !(inYear %100==0)) || inYear %400 ==0)

return true;

}

else {  return false;}

 }

//如果年份可以被4整除且不能被100整除,或它可以被400整除的话,那么它就是闰年。
 
 
 

Q:如何显示一个任意的一个对象的所有属性以及他们的值?
jscript.debug.enumProps = function(inObj) {
var props = "";
var i;
for(i in inObj){
 props += i + "=" + inObj[i] + "\n";
}
alert(prop);
}

 
Q:如何实现一个健壮的自动记录日志机制呢?类似jakarta Comons Logging?
我经常发现想在代码中放入一些日志信息,

Q:如何将任意的一个DOM元素居中?
当一个表单被提交时,应用程序弹出一个"请等待"的信息。它只是一个z-index设置为大的数值的
<div>,所以它可以被显示在其他所有东西的上面。不幸的是,那个写代码的临时工不知道如何将
<div>居中。所以它通常是在左上角。
 
jscript.dom.layerCenterH = function(inObj)
{
var lca;
var lcb;
var lcx;
var iebody;
var dsocleft;
if(window.innerWidth)
{
 lca = window.innerWidth;
}
else
{
 lca = document.body.clientWidth;
}
lcb = inObj.offsetWidth;
lcx = (Math.round(lca/2)) - (Math.round(lcb/2));
iebody = (document.compatMode && document.compatMode !="BackCompat")? dscoleft =
document.all ? iebody.scrollLeft:window.pageXOffset;
inObj.style.left = lcx +dsocleft + "px";
}

Q:如何引用任意数量的DOM元素?
A:
jscript.dom.getDOMElements = function()
{
if(arguments.length == 0)
{return null;}
if(arguments.length ==1)
{return document.getElementById(arguments[0]);}
var elems = new Array();
for ( var i = 0;i<arguments.length;i++)
{
elems.push(document.getElementById(arguments[i]))'
}
return elems;
}
 
这个函数会接受可变数量的参数。

 
Q:如何从一个HTML表单生成一个XML?  86页代码未摘录。
 
 

Q:select提高全选功能?
A:
jscript.form.selectSelectAll = function(inSelect)
{
if(inSelect == null || !inSelect.options || inSelect.options.length==0)
{return;}
var i;
for(i = 0;i<inSelect.options.length;i++)
{
inSelect.options[i].selected =true;
}
}
 

Q:如何获得一个对象的的属性并把他们复制给另外一个对象?
A:
jscript.lang.copyProperties = function(inSrcObj,inDestObj,inOverride)
{
var prop;
for(prop in inScrObj)
{
 if(inOverride || !omDestObj[prop])
 {
 inDestObj[prop] = inSrcObj[prop];
 }
 }
return inDestObj;
}
 
//使用for ...in 循环遍历inSrcObj的属性。对于每一个属性,查看是否已经在inDestObj中存在,如果存在,通过传入true作为inOverride参数的值,来看看条用着是否让我们覆盖已存在的属性。如果它存在是,我们就重写,如果它不存在,我们使用数组符号设置inDestObj的属性的值。
 
 

Q:如何在一个指定范围内生成随机数?
A:
jscript.math.genRandomNumber = function(inMin,inMax)
{
if(inMin >inMax){return 0;}
return inMin +(inMax-inMin)*Math.random();
}
 
 
 

Q:
如何使用JavaScript打破一个框架?就是不在是iframeset!
A:
jscript.page.breakOutOffFrames = function() {
if(self !=top)
{
top.location = self.location;
}
}

 
 
 
 
posted @ 2015-06-11 11:11  魔芋铃  阅读(161)  评论(0编辑  收藏  举报