非常详细的JavaScript 数组,字符串的方法及使用

JavaScript 数组,字符串的方法

数组的概念及定义

数组:一组任意类型或者相同类型的数据。

除了 Object 类型之外,Array 类型是ECMAScript 最常用的类型。而且 ECMAScript 中的 Array 类型和其他语言中的数组有着很大的区别。 虽然数组都是有序排列, 但 ECMAScript 中的数组每个元素可以保存任何类型。ECMAScript 中数组的大小也是可以调整的。

数组的方法及使用

push() :可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。

 var arr=['one','two'];
 console.log(arr.push('three','four'));    //4

pop() :从数组末尾移除最后一项,减少数组的length值,然后返回移除的项。

//括号里不需要参数
 var arr3=["one", "two", "three", "four"];
 console.log(arr3.pop());   //four

unshift() :方法能够在数组前面添加任意个项并返回新数组的长度。

 var arr=["one", "two", "three", "four"];
 console.log(arr.unshift('a','b','c'));    //7

shift() :方法能够移除数组中的第一个项并返回移除项,同时将数组长度减 1。

 var arr1=["one", "two", "three", "four"];
 console.log(arr1.shift());   //one

reverse() : 方法会反转数组项的顺序。

 var arr1=["one", "two", "three", "four"];
 console.log(arr1.reverse());    //["four", "three", "two", "one"]

sort() :方法按字母表升序排列数组项。(无法排序数字)

 //unicode 编码:
 //0-9  48-57
 //A-Z  65-90
 //a-z  97-122
 var arr1=["one", "two", "three", "four"];
 console.log(arr1.sort());   // ["four", "one", "three", "two"]
 
 //sort()方法可以接收一个比较函数作为参数.
 var arr2 = [100, 5, 90, 34, 7, 4, 6, 8, 29,1000];
 console.log(arr2.sort(function(a,b){
         return a-b;
        }));
        //[4, 5, 6, 7, 8, 29, 34, 90, 100, 1000]

concat() :方法可以基于当前数组中的所有项创建一个新数组,参数可以是数组项或者数组。不改变原数组

 var arr=['apple','banana'];
 var arr1=['a','b','c'];
 console.log(arr.concat('orange',arr,arr1));  //["apple", "banana", "orange", "apple", "banana", "a", "b", "c"]
         

slice() :方法它能够基于当前数组中的一或多个项创建一个新数组。可以接受一或两个参数,即要返回项的起始和结束位置,不包括结束位置。不改变原数组

 var arr=["a", "b", "c", "d", "e", "f", "g"];
 console.log(arr.slice());  //没有参数,全部截取。
 console.log(arr.slice(2));  //从索引2的位置开始---结束  ["c", "d", "e", "f", "g"]
 console.log(arr.slice(2,5));  //不包括结束位置  ["c", "d", "e"]
 console.log(arr.slice(2,-3));  //负数从后往前数-1。 ["c", "d"]
 console.log(arr.slice(-6,-2));  //负数从后往前数-1。 ["b", "c", "d", "e"]
 console.log(arr.slice(1,1));  //[]

splice() :方法对数组进行删除、插入、替换,是最强大的数组方法,返回值是数组,改变原数组。

 // 1.删除,第一个参数开始的索引,第二个参数代表截取的长度
 var arr=["a", "b", "c", "d", "e", "f", "g"];
 console.log(arr.splice(2,3));//["c", "d", "e"] 
 console.log(arr);//["a", "b", "f", "g"]

// 2.插入,第一个参数开始的索引,第二个参数为0,从第三个参数开始,代表插入的值。
 var arr=["a", "b", "c", "d", "e", "f", "g"];
 console.log(arr.splice(2,0,'hehe','xixi','haha'));  // ["a", "b", "hehe", "xixi", "haha"]
 console.log(arr);  //["a", "b", "hehe", "xixi", "haha", "c", "d", "e", "f", "g"]

 // 3.替换, 第一个参数开始的索引,第二个参数代表替换的长度,从第三个参数开始,代表替换的值。
 var arr=["a", "b", "c", "d", "e", "f", "g"];
 console.log(arr.splice(2,3,'hehe','xixi','haha'));  //[ "c", "d", "e"]
 console.log(arr);  //["a", "b", "hehe", "xixi", "haha", "f", "g"]

join() :方法,将数组转换成对应的字符串。参数就是连接符。

 var arr=["a", "b", "c", "d", "e", "f", "g"];
 console.log(arr.join('#'));  //a#b#c#d#e#f#g
 console.log(arr.join(''));  //abcdefg

字符串的方法及使用

charAt(num) :返回对应字符串索引的内容。

var str='javascript';
console.log(str.charAt(2));  //v

charCodeAt(num) :返回对应的字符串索引的内容的unicode编码。

var str='javascript';
console.log(str.charCodeAt(1));  //97

String.fromCharCode(unicode编码) :将参数中的unicode编码返回成对应的字符串的内容,多个编码用逗号分隔。

console.log(String.fromCharCode(97));   a

trim() :创建一个字符串的副本,删除前置及后缀的所有空格,然后返回结果。

var str='     sdafads dasf dafs fdasf       ';
console.log(str.trim());  //sdafads dasf dafs fdasf

split() :根据分隔符、将字符串拆分成数组。

//把一个字符串分割成一个数组。通过传递一个参数来分割。第一个参数就是分割字符串的符号。如果参数为空,也是数组,只有一个数据。
//第二个参数用来限制数组的长度,多余的切掉。
var str='abcde';
console.log(str.split('',4));  //["a", "b", "c", "d"]

substring() :用来截取字符串的内容

var str='javascript';
//没有参数全部截取。相当于从第0位开始截取。
console.log(str.substring());  //javascript
//一个参数代表截取从参数的位置往后的字符串。
console.log(str.substring(2));  //vascript
//两个参数代表截取两个参数之间的字符串,不包括最后一个参数的位置。
console.log(str.substring(2,6));  //vasc
//两个参数的时候,当第二个参数小于第一个参数,自动交换位置。 
console.log(str.substring(6,2));  //vasc
//如果是负数,当做0来处理。
console.log(str.substring(6,-5));  //javasc
console.log(str.substring(0,6));  //javasc

toUpperCase() :转换成大写.

var str='javascript';
console.log(str.toUpperCase());  //JAVASCRIPT

toLowerCase() :转换成小写.

var str='javascript';
console.log(str.toLowerCase());  //javascript

match() : 方法获取匹配内容,返回数组

var str='javascript123';
var reg=/[a-z]+/g;
console.log(str.match(reg));   //["javascript"]

search() : 来查找匹配数据,和全局没有关系,查找第一个匹配值的位置。

var str='javascript123';
var reg=/[0-9]+/g;
console.log(str.search(reg));  //10

replace() :替换,这个方法接受两个参数:第一个参数可以是一个 RegExp 对象或者一个字符串,第二个参数可以是一个字符串或者一个回调函数。

var str='javascript123';
console.log(str.replace(/[0-9]/g, '*'));   //javascript***

//回调函数
var str='get-element-by-id';  //->getElementById
console.log(str.replace(/\-\w/g,function(result){
    //console.log(result.substring(1));
    return result.substring(1).toUpperCase();
}));

数组和字符串共有的方法

  • slice() :截取字符串的方法,如果为负数,从后往前进行截取,包括开始的索引。
  • indexOf 和 lastIndexOf() :区别是如果第二个参数为负数,数组是从后往前找,字符串是当做0处理。
  • concat( ) :和数组方法使用一致。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值