JavaScript中的数组、字符串和数学函数
来源:互联网 发布:行知学园保证班 编辑:程序博客网 时间:2024/05/18 01:50
数组中的方法的作用:
- push():在数组的最后插入元素, 返回添加元素后数组的长度,括号内传入要插入的元素,若要插入多个,就用逗号隔开。
- pop():删除数组的最后一位元素,并返回被删除元素的值。
- shift()删除数组的第一个元素,并返回被删除元素的值。
- unshift()在数组最前面插入元素,并返回插入元素后数组的长度,若要插入多个元素,则中间用逗号隔开。
- join() 将数组拼接成字符串,并使用join中传入的值将前后两个元素隔开,返回拼接后的字符串,原数组不变。
- split() 根据传入参数将字符串拆分成数组,返回拆分后的数组,原字符串不变。
使用splice()实现以下方法:
- push
function pushes(){for(var i = 1;i < arguments.length;i++){ arguments[0].splice(arguments[0].length,0,arguments[i]);} // 通过遍历arguments将传入的每一个元素取出,并插入到数组的末尾。return arguments[0]; // 返回经过修改的数组的值}
- pop
function pop(arr){return arr.splice(arr.length-1,1)[0]; // 通过调用splice方法将数组最后一个元素删除,返回的是一个数组,通过索引将其取出}
- shift
function shift(arr){return arr.splice(0,1)[0];// 通过调用splice方法将数组第一个元素删除,返回的是一个数组,通过索引将其取出}
- unshift
function unshift(){for(var i = arguments.length - 1;i > 0;i--){ arguments[0].splice(0,0,arguments[i]);} // 通过遍历arguments将传入的每一个元素取出,并插入到数组的首位,首先取出的是最后一位,才能保证顺序。return arguments[0]; // 返回修改过的数组的值}
*使用数组拼接字符串:要拼接的字符串:
<dl class="product"><dt>女装</dt><dd>短款</dd><dd>冬季</dd><dd>春装</dd></dl>
实现函数:function getTpl(data){var dl = '<dl class="product">';var dt = "<dt>" + prod.name + "</dt>";var dd = "";for(var i = 0;i < prod.styles.length;i++){ dd += "<dd>" + prod.styles[i] + "</dd>";}var dlf = '</dl>';return dl + dt + dd + dlf; };
定义find函数,查找数组索引值,若未能找到,则返回-1:
function find(arr,a){ for(var i = 1;i < arr.length;i++){ if(arr[i] == a){ return i; } } return -1;}
写一个函数filterNumeric,把数组 arr 中的数字过滤出来赋值给新数组newarr, 原数组arr不变
function filterNumberic(arr){ var narr = []; for(var i = 0;i < arr.length;i++){ if(typeof(arr[i]) === "number"){ // 将原数组中每一个元素取出,进行判断是否为number narr.push(arr[i]); // 若是,则将其添加到新数组中 } } return narr;}
写出类似addClass,removeClass的函数
addClass():function addClass(obj,a){ var arr = obj.className.split(' '); for(var i = 0;i < arr.length;){ if(a === arr[i]){ return "className: " + obj.className; } } arr.push(a); obj.className = arr.join(" "); return "className: " + obj.className;}
removeClass:function removeClass(obj,a){ var arr = obj.className.split(' '); for(var i = 0;i < arr.length;){ if(a === arr[i]){ arr.splice(i,1); obj.className = arr.join(" "); return "className: " + obj.className; } } return "className: " + obj.className;}
一个将字符串中间横杠去掉,将后面单词首字母大写的函数
function camelize(a){ var arr = a.split("-"); // 将字符串转换为数组,以"-"相隔 for(var i = 1;i < arr.length;i++){ arr[i] = arr[i].toUpperCase() + arr[i].substr(1); // 从第二个开始遍历,将首字母大写 } return arr.join("") // 将首字母大写后的数组重新拼接成字符串}
代码输出问题
arr = ["a", "b"];arr.push( function() { alert(console.log('hello hunger valley')) } ); // 在数组的最后增加了一个一名函数arr[arr.length-1]() //
最后一行代码的意思即是arr[2]()
,这行代码的意思就是去执行上面的匿名函数,由于匿名函数没有设置返回值,将函数中的console.log
输出之后,弹窗结果为undefined,并且没有返回值的函数默认返回值为undefined。
写一个函数,过滤原数组中的数字,删除非数字,在原数组中操作:
function filterNumbericInPlace(arr){ for(var i = 0;i < arr.length;i++){ if(typeof(arr[i]) !== "number"){ arr.splice(i,1); // 遍历其中所有元素,将不是数字的删除 i--; // 若执行了删除命令,则索引值整体会往前移动一位,这时将索引i也相应前移一位 } }}
>>源码
使用函数实现将数组按其中的age从小到大排列
function ageSort(a,b,c){ var arr = [a,b,c]; // 将传入的元素整合成一个数组 arr.sort(function(p1,p2){ return p1.age > p2.age; // 使用对数组中数字排序的方式,按age的大小排列 }) return arr;}
写一个filter(arr, func)函数用于过滤数组
function filter(arr,func){ for(var i = 0;i < arr.length;i++){ if(func(arr[i]) !== true){ arr.splice(i,1); // 如果不是指定类型,则删除该元素 i--; // 由于删除元素会让索引值向前移动,则将i向前移动一位 } } return arr; // 返回删除不符合元素后的arr}function isNumeric (el){ return typeof el === 'number'; // 判断是否为number的函数}function isStr(el){ return typeof el === "string"; // 判断是否为string的函数}function isNagtive(el){ return typeof el === "number"&& el === Math.abs(el); // 判断是否为正整数}
字符串:
一个将字符串首字母大写的函数
function ucFirst(str){ return str[0].toUpperCase() + str.substr(1);}
定义一个函数,判断字符串长度,若长度超过给定长度,则返回前十位加"...",否则返回原字符串:
function truncate(str,num){ if(str.length > num){ // 判断字符串长度 return str.substr(0,10) + "..."; // 若长度超过10,返回前十位加"..." }else{ return str; // 否则返回原字符串 }}
数学函数
写一个函数,获取从min到max之间的随机整数,包括min不包括max
function ran(minNum,maxNum){ return Math.floor((Math.random()*(maxNum - minNum) + minNum));}
写一个函数,获取从min都max之间的随机整数,包括min包括max
function ran(minNum,maxNum){ return Math.round((Math.random()*(maxNum - minNum) + minNum));}
写一个函数,获取一个随机数组,数组中元素的长度为len,最小值为min,最大值为max(包括)的随机整数
function randomArr(len,min,max){ var arr = []; // 定义一个空数组,以便传入得到的值 for(var i = 0;i < len;i++){ arr.push(Math.floor(Math.random()*(max - min + 1) + min)); } // 利用随机数和向下取整,获取一个范围内的值,并将其加入数组最后,通过遍历获取对应的个数 return arr; // 返回遍历完成后的数组}
写一个函数,生成一个长度为 n 的随机字符串,字符串字符的取值范围包括0到9,a到 z,A到Z。
function getRandstr(len){ res = ""; // 定义一个空字符串以接收传入的字符串 var str = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; for(var i = 0;i < len;i++){ res += str[Math.floor(Math.random() * str.length)]; // 通过随机数的方式获得随机的索引值,向下取整后将索引值对应的字符串取出,并拼接到str上面。 } return res; // 返回拼接完成的随机字符串}
- JavaScript中的数组、字符串和数学函数
- Pascal中的字符串函数和数学函数
- awk中的常用的字符串函数和数学函数
- JavaScript基础系列7---字符串操作和数学函数
- Oracle 常用函数- 字符和数学函数
- awk的使用 第十三部分 awk的字符串和数学函数
- Tcl 运算符和数学函数
- JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...
- JavaScript 中的数组函数
- javascript中的字符串函数
- javascript中的字符串函数
- JavaScript字符串中的字符数组
- JavaScript中的字符串,数组,替换
- lwj_C#_work 字符串、类的使用和数学运算
- javascript中的字符串处理函数
- Matlab常用数学函数和数学运算符
- 支持变量和数学函数的 CSS 预处理器
- 编程和数学(1)
- 关于InnoDB事务的一个“诡异”现象:RR隔离级别下的幻读现象(补充)
- Object类有哪些公用方法?
- SpringMVC(三)HiddenHttpMethodFilter
- SAP Activate方法论
- PyCharm安装selenium模块实现selenium自动化测试
- JavaScript中的数组、字符串和数学函数
- 纯js实现html转pdf
- javascript 值得注意的一些问题
- C语言字符串转long long例程atoll()及long long打印
- 蓝桥杯 买不到的数目
- JavaScript之闭包、定时器
- java实现排序算法之交换排序(冒泡排序和快速排序)
- 学习=输入+输出
- InnoDB之MVCC机制与不可重复读