JS中字符串和数组的经常使用方法
js中字符串经常使用方法
查找字符串
根据索引值查找字符串的值
根据字符值查找索引值
截取字符串的方法
字符串替换
字符串的遍历查找
字符串转化为数组
数组中经常使用的方法
往数组里增长项
从数组里删除项
更改数组项
查询数组项
遍历数组
截取数组值
其余的数组方法
string.charAt(index)返回给定位置的那个字符值;web
var str = 'abcdefg'; console.log(str.charAt(3));//d
string.indexOf(substring,start)从一个字符串搜索指定的子字符串,返回子字符串的位置(没有找到返回-1)。正则表达式
var str = 'abcedcbadefghi'; //从第5个索引(值为c)开始查找,找不到,返回-1; console.log(str.indexOf('dc',5));//-1 //从str的第一位开始日后查找,返回子串中第一个值d在str中出现的索引位。 console.log(str.indexOf('dc',0));//4
String.lastIndexOf(start,value ) 从后向前检索一个子字符串;数组
var str = 'abcedcbadefghi'; // 此时是从第一位开始往前查找,找不到,返回-1. console.log(str.lastIndexOf('ed',0));//-1 //从str的第11位值g开始往前找,最后一次出现''ed'的位置。 console.log(str.lastIndexOf('ed',11));//3 //从str的第11位值g开始往前找,最后一次出现e的位置。 console.log(str.lastIndexOf('e',11));//9
String.search( ) 检索与正则表达式相匹配的子串bash
var str = 'abcedcbadefghi'; console.log(str.search('ed'));//3
string.slice(start, end)截取一个子串函数
var str = 'abcedcbadefghi'; console.log(str.slice(2,5));//ced console.log(str);//abcedcbadefghi
string.substr(start, length) 抽取一个子串post
var stringValue = "hello world"; alert(stringValue.substr(3)); //"lo world" ; alert(stringValue.substr(3,7)); //"lo worl"
string.substring(from, to):返回字符串的一个子串测试
var stringValue = "hello world"; alert(stringValue.substring(3,7)); //"lo w"
//替换 var text = "cat,bat,sat,fat"; var result = text.replace("at","ond"); alert(result); //"cond,bat,sat,fat"
var text = "cat,bat,sat,fat"; var pattern = /.at/; var matches = text.match(pattern); console.log(matches); //["cat"] var str = 'abcedcbadefghi'; console.log(str.match())//[''] console.log(str.match('a'))//['a']
string.split(delimiter, limit)将字符串分割成字符串数组ui
//将一个字符串进行倒序输出 var str = 'abcdefg'; var str3 = str.split('').reverse().join(''); console.log(str3);//gfedcba
array.push(value, ...)给数组最后添加一个或多个元素;this
var arr = [3,4,5,2,1,9,4,2,5,3,8,1]; console.log(arr.push('a','s','f'));//15 console.log(arr);//[3, 4, 5, 2, 1, 9, 4, 2, 5, 3, 8, 1, "a", "s", "f"]
array.unshift(value, ...) 给数组最前边添加一个或多个元素;编码
var arr = [3,4,5,2,1,9,4,2,5,3,8,1]; console.log(arr.unshift('a','s','f'));//15 console.log(arr);//["a", "s", "f", 3, 4, 5, 2, 1, 9, 4, 2, 5, 3, 8, 1]
Array.pop( ) 删除并返回数组的最后一个元素
var arr = [3,4,5,2,1,9,4,2,5,3,8,1]; console.log(arr.pop());//1 var arr1 = []; console.log(arr1.pop());//undifined
Array.shift( ) 将元素移出数组
var arr = [3,4,5,2,1,9,4,2,5,3,8,1]; console.log(arr.shift());//3 var arr1 = []; console.log(arr1.shift());//undifined
Array.reverse( ) 颠倒数组中元素的顺序
var arr = [3,4,5,2,1,9,4,2,5,3,8,1]; console.log(arr.reverse());//[1, 8, 3, 5, 2, 4, 9, 1, 2, 5, 4, 3] //修改原数组,而不会建立新的数组; console.log(arr);//[1, 8, 3, 5, 2, 4, 9, 1, 2, 5, 4, 3]
Array.sort(fun ) 对数组元素进行排序
var arr = [3,4,35,200,1,90,4,2,54,3,81,1]; console.log(arr.sort()); //[1, 1, 2, 200, 3, 3, 35, 4, 4, 54, 81, 90]; console.log(arr.sort(function(a,b){return a-b})); //[1, 1, 2, 3, 3, 4, 4, 35, 54, 81, 90, 200]
array.forEach(item[, thisObject]);
var arr = [3,4,35,200,1,90,4,2,54,3,81,1]; arr.forEach(function(item){ console.log(item) }); //输出的是数组的每一项的值。
array.map(item[, thisObject]);
forEach和map的区别
var arr = [3,4,35,200,1,90,4,2,54,3,81,1]; var arra = arr.map(function(item){ console.log(item); return item*2; }); console.log(arra);//[6, 8, 70, 400, 2, 180, 8, 4, 108, 6, 162, 2] var arra1 = arr.forEach(function(item){ console.log(item); return item*2; }); console.log(arra1);//undefined
假设咱们有一个数组,每一个元素是一我的。你面前站了一排人。
people.forEach(function (dude) { dude.pickUpSoap(); });
var wallets = people.map(function (dude) { return dude.wallet; });
var totalMoney = wallets.reduce(function (countedMoney, wallet) { return countedMoney + wallet.money; }, 0);
- 补充一个 filter 的:你一个个钱包数过去的时候,里面钱少于 100 块的不要(留在原来的盒子里),多于 100 块的丢到一个新的盒子里。这样结束的时候你又有了一个新的数组,里面是全部钱多于 100 块的钱包:
var fatWallets = wallets.filter(function (wallet) { return wallet.money > 100; });
array.slice(start, end);返回数组的一部分
var arr = [3,4,35,200,1,90,4,2,54,3,81,1]; var newarr = arr.slice(2); console.log(newarr);//[35, 200, 1, 90, 4, 2, 54, 3, 81, 1] //原数组没有改变 console.log(arr);//[3, 4, 35, 200, 1, 90, 4, 2, 54, 3, 81, 1]
array.splice(start, length, value, ...); 插入、删除或替换数组的元素 ;
var arr = [3,4,35,200,1,90,4,2,54,3,81,1]; var newarr = arr.splice(2); //没有第二个参数时,默认是截取到最后。返回截取出来的数组。 console.log(newarr);//[35, 200, 1, 90, 4, 2, 54, 3, 81, 1]; //原数组立马发生了改变 console.log(arr);// [3, 4] var arr = [3,4,35,200,1,90,4,2,54,3,81,1]; var arr1 = arr.splice(2,5,'w','d','r','y','h'); console.log(arr1);// [35, 200, 1, 90, 4] //将原数组进行了改变! console.log(arr);//[3, 4, "w", "d", "r", "y", "h", 2, 54, 3, 81, 1]
array.concat(value, ...);拼接数组
var arr = [1,2,3]; console.log(arr.concat(4, 5)) //返回 [1,2,3,4,5] console.log(arr.concat([4,5])) //返回 [1,2,3,4,5] console.log(arr.concat([4,5],[6,7])) //返回 [1,2,3,4,5,6,7] console.log(arr.concat(4, [5,[6,7]])) //返回 [1,2,3,4,5,[6,7]]
Array.join(separator) 将数组元素链接起来以构建一个字符串
var arr = [1,2,3]; var arr1 = arr.join('+'); console.log(arr);// [1, 2, 3] console.log(arr1);//'1+2+3'