JavaScript中常见的方法

来源:互联网 发布:空间数据的逻辑运算 编辑:程序博客网 时间:2024/06/07 00:42

Array中的方法


操作方法


array.concat(item...)方法 

concat方法产生一个新的数组,它包含array的副本并把一个或多个item参数拼接在array副本后面。也就是说,它所产生的数组只是一个array的副本与拼接item参数的数组。其中,item参数可以是一个任何定义了的数组、字符串。concat方法不能改变原数组(array)。

var a = ["a", "b", "c"]; //arrayvar b = ["d", "e", "f"]; //其它数组var c = a.concat(b, "h", true); //在a数组后面拼接字符串"h"和布尔值trueconsole.log(c); //["a", "b", "c", "d", "e", "f", "h"]


array.join("")方法

join方法把一个数组构造成一个字符串。它把array中的每个元素构造成字符串,参数为可指定的分隔字符串的分隔符。默认情况下(不传递参数的情况下),是以","逗号为分隔符,当然,可以指定分隔符,如果不想要分隔符,则传入空字符即可。join方法不会改变原数组(array)。

var a = ["a", "b", "c"]; //arrayvar b = ["d", "e", "f"]; //其它数组var c = a.join(); //默认情况,即不传递参数情况下。console.log(c); //a,b,cvar d = a.join(""); //以空字符为分隔符console.log(d); //abcvar e = a.join("-"); //以"-"为分隔符console.log(e); //a-b-c



使用"+"连接符,也可以将数组与数组、数组与字符串、字符串与字符串连接起来。该方法不会改变原数组。

var a = ["a", "b", "c"];var b = ["d", "e", "f"];var c = a + "," + b + "g";console.log(c); // a,b,c,d,e,f,g



array.slice(start, end)方法


slice方法用于提取数组。提取索引从start到end之间的元素,且不提取索引end位置的元素。返回一个新数组,这个方法不会改变原数组。
如果这个两个参数有负数,则与数组的总长度array.length相加,使其参数不为负值。
如果strart大于array.length,则返回一个空数组。

var a = ["a", "b", "c", "d"];var b = a.slice(0); //从索引为0的位置开始提取元素。console.log(b); //["a", "b", "c", "d"]var c = a.slice(0, 2); //提取索引为0到索引为1之间的元素,包括索引1位置的元素console.log(c); //["a", "b"]var d = a.slice(4); console.log(d); //[]空数组




array.splice(start, deleteCount, item...)方法


splice方法从array数组中移除一个或多个元素,并用新的元素替换它们。其中,start表示移除的开始位置,deleteCount表示要移除的元素个数,item表示替换的元素。

splice()方法可用于三个情况:
1、替换元素操作。start表示开始替换的位置,deleteCount表示需要替换的个数,item表示新元素。返回被替换的元素


2、删除元素操作。start表示要删除的开始位置,deleteCount表示删除的个数,item此时不传递参数。也就是替换为空元素,相当于删除操作。返回被删除的元素


3、插入元素操作。start表示插入的开始位置,deleteCount此时为0,item表示要插入的元素。


var a = ["a", "b", "c"]; //arrayvar b = a.splice(1, 1, "d"); //替换操作console.log(a); // ["a", "d", "c"]console.log(b); // ["d"]var c = a.splice(1, 1); //删除操作console.log(a); // ["a", "c"]console.log(c); //["d"]var d = a.splice(0, 0, "e"); //插入操作console.log(a); // ["e", "a", "c"]





栈方法


array.pop()和array.push()


这两种方法使得数组array可以像堆栈一样向数组中移出字符和插入字符,俗称“栈方法”。array.pop()移除array中末尾的字符串并返回移除的字符串,array.push()方法是向array末尾插入字符串并返回新数组的长度。这两个方法会改变原数组array。

var a = ["red", "blue", "yellow"];var b = a.pop(); //移除数组末尾的字符串console.log(b); //返回移除的字符串"yellow"console.log(a); //["red", "blue"] var c = a.push("green"); //向数组插入末尾插入字符串console.log(c); //返回新数组的长度 3console.log(a); //["red", "blue", "green"]





重排序方法


array.reverse()方法

reverse方法是反向输入数组,也就是反向顺序地输入数组。该方法不会改变原数组。

var a = ["a", "b", "c"];var b = a.reverse(); //反向输入console.log(b); //["c", "b", "a"]





array.sort()方法


sory方法用于给数组的元素进行排序,需要定义一个排序函数作为参数传入。该排序函数规定了元素是按从小到大的顺序排列还是按从在到小的顺序排列。该方法不会改变原数组。

var a = [1, 3, 2, 5, 4];//排序函数function px (a, b) {    if (a > b) {        return -1;    } else if (a < b) {        return 1;    } else {        return 0;    }}//其中,如果a位于b之前则返回负数,如果a位于b之后则返回正数,如果a与b相等则返回0。可以看出,以上是规定按降序排列。var b = a.sort(px);console.log(b); //[5, 4, 3, 2, 1]





队列方法


array.shift()和array.unshift("")方法


shift方法是从移除数组的第一个元素(前端)并返回该项的元素,shift方法与push方法结合使用,就可以像使用队列一样使用数组。unshift方法是从数组的前端插入指定的字符串并返回新数组长度,unshift方法与pop方法结合使用。这两个方法会改变原数组。

var a = ["red", "blue", "yellow"];var b = a.shift(); //移除前端第一个元素console.log(b); //返回移除的字符串 "red"console.log(a); //["blue", "yellow"]var c = a.unshift("green", "orange"); //向前端插入字符串console.log(c); //返回新数组长度 4console.log(a); //["orange", green", "blue", "yellow"]







位置方法


array.indexof("", "")方法和array.lastIndexof("", "")方法

indexof方法用于从数组 开头往后 查找指定元素所在的索引,并返回该元素所在索引位置。
lastIndexof方法用于从数组 末尾往前 查找指定元素所在的索引,并返回该元素所在索引位置。

其中,第二个参数是可选的,规定查找的起点。第一次查找到为止。查找不到则返回-1。


var a = [1, 2, 3, 4, 3, 5, 6];var b = a.indexOf(3); //查找数字3所在的索引位置console.log(b); //2var c = a.indexOf(3, 3); //从索引3的位置开始查找数字3console.log(c); //4






迭代方法


迭代方法接收两个参数:第一个参数为在每一个元素上运行的函数,第二个参数运行该函数的作用域对象--影响this值。


1、every():对数组中的第一个元素运行给定函数,如果函数对第一个元素均返回true,则该方法返回true。
2、filter():对数组中的每一个元素运行给定函数,返回 函数会返回true的 元素 所组成的数组。
3、some():对数组中的每一个一个运行给定函数,如果函数对任意一个元素返回true,则该方法返回true。
3、map():对数组中的每一个元素运行给定函数,返回 每次函数调用的结果所组成的数组。
4、forEatch():该方法用于遍历数组、对象。


以上的给定函数接收三个参数:表示数组项的值、表示该值在数组的索引、数组对象本身(Array)。

var a = [1, 2, 3, 4, 5];var b = a.every(function (item, index, Array) {    return (item > 1);;});console.log(b); // false 不是第一个元素都满足大于1var c = a.some(function (item, index, Array) {    return (item > 1);});console.log(c); //true






归并方法



reduce()方法和reduceRight()方法

这两个方法会迭代数组的所有元素,然后构建返回的值。reduce方法从数组一个元素开始,逐个遍历到数组最后一项。reduceRight方法从数组最后一项开始,逐个遍历到数组第一个元素。

它们接收两个参数:调用在每一个元素上的给定函数和归并的初始值。

给定函数接收四个参数:前一个值、当前值、项的索引、数组对象本身。给定函数返回的任何值均作为第一个参数传入并自动传入下一项。第一次迭代是在第二项上,因此当前值为第二项的值。

var a = [1, 2, 3, 4];var b = a.reduce(function (prev, cur, index, Array) {    return prev + cur;});console.log(b); // 10 

第一次迭代,prev为1,cur为2。第二次迭代,prev为3(1 + 2返回的结果作为了prev),cur为3。依次类推。







Function方法



apply()方法和call()方法

apply方法用于函数apply()调用模式,第一个参数是作为会绑定到this对象上的对象,第二个参数是数组或对象。


格式:a.apply(b, []) ||a.apply(b, {})


以上说明,b对象可以使用a对象的属性和方法,将b对象绑定到了this对象上。


call方法与apply方法一样的作用,只不过第二个参数是数组或对象的详细元素。


function sum (a, b) {    return a + b;}function sum1 () {}var a = sum.apply(sum1, [1, 2]);console.log(a); //3 这样this对象就指向了sum1对象,同时sum1函数拥有了sum函数的方法。对于call方法:只需要修改一个地方即可:var a = sum.call(sum1, 1, 2);








bind()方法

bind()方法会创建一个实例对象,其实例对象的this值会绑定到传递给bind()函数的值。


window.color = "red";var o = {color : "blue"};function sayColor () {return this.color;}console.log(sayColor()); // red 此时的this对象指向window对象。var b = sayColor.bind(o); //将b对象的this值绑定到了对象o上。console.log(b()); // blue 此时this值指向o对象。console.log(sayColor()); // red 此时的this对象指向window对象。

bind()方法主要用于新创建的对象b上。





Number方法



number.toFixed()


该方法用于将number转换为一个 十进制字符串。传入的参数 表示小数点后面的数字位数。


var a = 12345;var b = a.toFixed(3);console.log(b); // 12345.000console.log(typeof b); //string





number.toExponential()


该方法用于将number转换成一个指数形式的字符串。传入的参数 表示小数点后面的数字位数。

var a = 12345;var b = a.toExponential(3);console.log(b); // 1.235e+4  小数点后面3位数字位数,如果指定的位数小于原数字的位数,则进行四舍五入console.log(typeof b); //string





number.toPrecision()


该方法用于将number转换成一个十进制的字符串,传入的参数 控制其整个数字的长度。

var a = 12345;var b = number.toPrecision(4);console.log(b); //1235  如果指定的数字长度小于原数字长度,则进行四舍五入。






number.toString()


该方法用于将number转换成指定进制的字符串。传入的参数 表示指定转换的进制。


var a = 2;var b = a.toString(10); //转换成十进制数console.log(b); //2console.log(typeof b); //stringvar c = a.toString(2); //转换成二进制数console.log(c); //10






Object方法



object.hasOwnProperty(name)


该方法表示object对象是否有name这个属性,如果有返回true,反之返回false。


var obj = {age : 21};var b = obj.hasOwnProperty("age"); //truevar b = obj.hasOwnProperty("name"); //false







String方法



string.charAt()方法


该方法用于查找指定索引位置的字符,并返回该字符。如果指定的索引小于0或大于string.length,则返回空字符串。

var str = "hello world";var str1 = str.charAt(1); //索引1处的字符为e






string.charCodeAt()方法

该方法用于查找指定索引位置的字符,并返回该字符的字符编码。




string.concat()方法


拼接字符串。




string.indexOf()方法


该方法用于返回指定字符串所在的索引位置。从字符串开头开始向后查找,可以指定开始查找的位置。




string.lastIndexOf()方法


该方法用于返回指定字符串所在的索引位置。从字符串末尾开始向前查找,可以指定开始查找的位置。




string.localeCompare(that)方法


该方法用于比较两个字符串,如果string比that小,返回负数,如果相等,返回0,如果大于that,返回正数。这个方法可以结合sort()方法用来排序数组中的字符串的排序。

var a = ["AAA", "A", "aa", "a"];a.sort(function (a, b) {    return a.localeCompare(b); //返回负数,a在b前面。返回正数,a在b后面。返回0,a、b相等。});