Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说JS中字符串和数组的常用方法[亲测有效],希望能够帮助你!!!。
JS中字符串和数组的常用方法
js中字符串常用方法
查找字符串
根据索引值查找字符串的值
根据字符值查找索引值
截取字符串的方法
字符串替换
字符串的遍历查找
字符串转化为数组
数组中常用的方法
往数组里增加项
从数组里删除项
更改数组项
查询数组项
遍历数组
截取数组值
其他的数组方法
string.charAt(index)返回给定位置的那个字符值;
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( ) 检索与正则表达式相匹配的子串
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) 抽取一个子串
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)将字符串分割成字符串数组
//将一个字符串进行倒序输出
var str = 'abcdefg';
var str3 = str.split('').reverse().join('');
console.log(str3);//gfedcba
array.push(value, ...)给数组最后添加一个或多个元素;
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'
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。