以下包括学习过程中搜集整理和个人总结的内容,有引用,侵删
数组常用方法 :
- 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