字符串与数组的 api 实例演示
一.字符串 api
let str = "苟利国家生死以,岂因祸福避趋之";
//长度
console.log(str.length);
//索引->元素
console.log(str[2]);
//元素->索引
console.log(str.indexOf("国"));
//indexOf性能更高,search支持正则表达式
console.log(str.search("[国生]"));
//字符串拼装
console.log(str.concat("--林则徐"));
console.log(`${str}--林则徐`);
//替换
console.log(str.replace(",", "_"));
//取子串
//开始位置,结束位置,忽略结束索引对应的值
console.log(str.slice(0, 7));
//开始位置,子串长度,支持负数
console.log(str.substr(0, 7));
console.log(str.substr(8, 7));
console.log(str.substr(-7, 7));
let s = "abc-EFG-12345";
//使用指定分隔符分割成字符串数组
console.log(s.split("-"));
console.log(s.split("", 7));
//大小写
console.log(s.toUpperCase());
console.log(s.toLowerCase());
//转换为超链接
document.body.insertAdjacentHTML(
"afterbegin",
s.link("http://www.hao123.com/")
);
二.数组 api
//返回数组
let arr = Array.of(1, 2, 3, 4, 5);
console.log(arr);
//类数组转换
let li = document.querySelector("ul").children;
console.log(li);
console.log(Array.from(li));
//前后端的增删
//后端添加
arr.push(6, 7);
// 前端添加
arr.unshift(-1, 0);
console.log(arr);
// 后端删除
arr.pop();
// 前端删除
arr.shift();
console.log(arr);
//数组的遍历
//arr.forEach(function(元素的值,值对应的索引,数组本身) {对数组中的每个元素逐个调用回调方式进行处理})
// 三个参数,只有第一个必选的,其它可不写,返回undefined
let res = arr.forEach((item) => (item <= 3 ? console.log(item) : false));
console.log(res);
//需要返回值时使用map
res = arr.forEach((item) => item * 2);
console.log(res);
res = arr.map((item) => item * 2);
console.log(res);
//every,数组全部满足条件才会返回true
console.log(arr.every((item) => item >= 3));
//some,数组部分满足条件就可以返回true
console.log(arr.some((item) => item >= 3));
//filter,只返回为真元素组成的数组
console.log(arr.filter((item) => item <= 3));
//find,返回满足条件的第一个
console.log(arr.find((item) => item <= 3));
//归并
// arr.reduce(function(累加器,元素的值,值对应的索引,数组本身) {},初始值)
res = arr.reduce((sum, item) => {
console.log(`sum:${sum},item:${item}`);
return sum + item;
}, 1000);
console.log(res);
//累加器
res = arr.reduce((sum, item) => sum + item);
console.log(res);
//排序sort
let pai = [3, 14, 15, 92, 65];
//依照字符串顺序排序
console.log(pai.sort());
//asc,小到大
console.log(pai.sort((a, b) => a - b));
//dsc,大到小
console.log(pai.sort((a, b) => b - a));
//拼接join
pai = [3, 14, 15, 92, 65];
console.log(pai.join());
console.log(pai.join(","));
console.log(pai.join("_"));
//取子元素slice
console.log(pai.slice(2, 4));
console.log(pai.slice(-3, -1));
//splice默认删除,也可以替换,新增
//splice(从索引a的地方开始,删除b个元素,插入c,d,e,f...)
//删除,删除元素的索引,返回被删除的元素
console.log(pai.splice(3, 2));
console.log(pai);
//替换,替换元素的索引,更新值
console.log(pai.splice(1, 2, 92, 65));
console.log(pai);
//新增,添加的位置,新增值
console.log(pai.splice(1, 0, 14, 15));
console.log(pai);