js数组,对象,字符串的常见方法

以下包括学习过程中搜集整理和个人总结的内容,有引用,侵删

数组常用方法 :

  • length:设置或返回数组中元素的数目
  • push():向数组的末尾添加一个或多个元素,并返回新的长度,也就是添加元素后的数组长度
  • shift():用于把数组的第一个元素从其中删除,并返回第一个元素的值
  • unshift():向数组的开头添加一个或更多元素,并返回新的长度
  • pop():用于删除并返回数组的最后一个元素
  • splice():用于插入、删除或替换数组的元素
  • concat():方法用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
arrayObject.concat(arrayX,arrayX,......,arrayX)
  • join():用于把数组中的所有元素放入一个字符串,元素是通过指定的分隔符进行分隔
  • toString():方法可把 数组转换为字符串,并返回结果
  • reverse():方法用于颠倒数组中元素的顺序
  • slice():方法可从已有的数组中返回指定的元素
  • sort(sortby):方法用于对数组的元素进行排序(从小到大)sortby可选,必须是函数,规定排序顺序。会逐项的将数组中的元素传入到函数中作为参数
  • indexOf():返回获取项在数组中的索引,不存在则等于-1

  • lastIndexOf():返回获取项在数组中出现的最后一次索引
  • forEach():循环遍历数组参数是一个匿名函数默认返回undefined
arr.forEach(function(self,index,arr){},this);
//self:数组当前遍历的元素,默认从左往右依次获取数组元素。
//index:数组当前元素的索引,第一个元素索引为0,依次类推。
//arr:当前遍历的数组。
//this:回调函数中this指向。

json对象数组,如何取出其中一部分,组成新对象数组

//原始数组
var data = [
  {dd:'22',AA:'陈宇',re1:123},
  {dd:'33',AA:'杨震',re1:234},
  {dd:'44',AA:'谢允',re1:456}
];
//新建空数组
var arr = [];
//遍历处理
data.forEach(function(item){
 arr.push({AA: item.AA, re1: item.re1})
})
console.log(arr)

把对象的转成纯数组

var values = [];
d.forEach(function(n, i){
  var _arr = [];
  for(var m in n){
    _arr.push(n[m]);
  }
  values.push(_arr);
})
  • map():循环遍历数组参数是一个匿名函数

数组去重

map():按照原始数组元素顺序依次处理元素。可以在map方法里面输入

//去掉name属性是一样的json对象
var temp = {};   //用于name判断重复
var result = [];  //最后的新数组

totalDemo.map(function (item, index) {
    if(!temp[item.name]){
        result.push(item);
        temp[item.name] = true;
    }
});
console.log(result);

 forEach + includes

let arr = [1, 2, 1, 3, 2, 4, 3, 5, 4]
let newArr = []
arr.forEach(item => {
  if (!newArr.includes(item)) newArr.push(item)
})
console.log(newArr)

对象常用方法:

  • charAt():返回在指定位置的字符
  • charCodeAt():返回在指定的位置的字符的Unicode编码
  • concat():连接字符串
  • indexOf():检索字符串
  • match():找到一个或多个正则表达式的匹配
  • replace():替换与正则表达式匹配的字串
  • search():检索与正则表达式相匹配的值
  • slice():提取字符串的片段,并在新的字符串中返回被提取的部分
  • split():把字符串分割为字符串数组
  • toLocaleLowerCase():把字符串转换为小写
  • toLocaleUpperCase():把字符串转换为大写
  • toLowerCase():把字符串转换为小写
  • toUpperCase():把字符串转换为大写
  • substr():从起始索引号提取字符串中指定数目的字符
  • substring():提取字符串中两个指定的索引号之间的字符

js判断对象数组中是否存在某个对象 - c-137Summer - 博客园https://www.cnblogs.com/leiting/p/9253461.html

js数组对象过滤:filter,find,some,every - 酷儿q - 博客园https://www.cnblogs.com/Qooo/p/14097176.html

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。原数组不变. 不会对空数组进行检测

let arr2 = arr1.filter(item=>item===1)

find() 对于空数组,函数是不会执行的。不会改变原数组. 返回符合测试条件的第一个数组元素值

let arr6 = arr5.find(item=>item===1)

some() 用于检测数组中的元素是否存在元素满足指定条件. 会依次执行数组的每个元素如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测,如果没有满足条件的元素,则返回false

let someArr3 = someArr4.find(info=>{ return arr3.some(item=>item.id === info.id) })

every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)

let everyArr2 = everyArr.every(item=>item===1)

判断一个数组是否包含另一个数组

let a = [1, 2, 3, 4, 5, 6, 7, 8];
let b = [1, 2];
let c = [3, 9];

function includes(arr1, arr2) {
  return arr2.every(val => arr1.includes(val));
}
console.log(includes(a, b));  //true
console.log(includes(a, c));  //false

字符串常用方法

常见的字符串操作函数https://www.jb51.net/article/65358.htm

slice、splice、split 三者的区别

slice(切割)能够截取 字符串 或 数组,并返回一个新的 字符串 或 数组(不改变原字符串或数组)

str.slice(start,end); arr.slice(start,end); //保留到 end下标 的前一个结束

splice(拼接)是一个专门用于 数组操作 的方法。它可以对数组中的元素进行删除、插入和替换。替换原数组,返回删除的元素数组。

arr.splice(start,num,arg1,arg2...) 
//从 start下标 开始,删除 num 个元素,再在此处插入 arg1,arg2… 
//如果只填了 start 却没填 其它参数,则代表删除其后的所有元素

可以利用这个自定义一个删除数组的方法

//从数组删除元素
Array.prototype.remove = function(val) {
	var index = this.indexOf(val);
	if (index > -1) {
		this.splice(index, 1);
	}
};

split(分离)以基于指定的分隔符将一个字符串分割成 多个子字符串,并将结果放在一个数组中

let str = 'this is a test' 
str.split('s') //["thi", " i", " a te", "t"]

split(): 把字符串分割成字符串数组。

var str1 = str.split("");//字符串的每个字符之间都会被分割,包括空格
var str2 = str.split(" "); //以空格为分隔符,返回结果不包括空格
var str3 = str.split("",4); //4指定返回数组的最大长,即输出前4个字符
var str4 = str.split("o");  //以o最为分隔符,返回结果不包括o
var str5 = str.split(',')  //字符串根据逗号拆分成数组

exec() 方法用于检索字符串中的正则表达式的匹配。返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。例: 检索字符串中的数字

var str = "我今年25岁明年26岁后年27岁千年24岁";
var reg=/\d+/g;
var result;
while(result=reg.exec(str)){
console.log(result[0])   //25  26  27  24
}

trim()是去除字符串前后两端的空格,返回一个新的字符串,对原字符串不会有影响;

trimLeft()、trimStart()是去除字符串前端的空格;

trimRight()、trimEnd()是去除字符串后端的空格

replace()正则匹配

var new_arr = arr.replace(/\s*/g, '')

去除所有空格:/\s*/g

去除前后两端空格:/^\s*|\s*$/g

去除左侧空格:/^\s*/

去除右侧空格:/(\s*$)/g

replaceAll()的兼容性太差,可以用replace和正则相结合来代替replaceAll的使用。

var str = "wordwordwordword";
var str1 = str.replace(/word/g,"Excel")  //通过正则表达式,替换所有word
var str2 = str.replace("word","Excel");  //替换一个word

也可以利用splite()和join()来实现全部替换

let str = '2021.01.25'//要将其转换成2021-01-25
console.log(str.split('.').join('-'))//2021-01-25
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值