记录个人数组、字符串自己常忘记的方法,以及ES常用处理方式
记录自己在工作中,时不时使用,每次都要去查一下的基础方法。以及ES6经常使用的方法
一、Array
1、concat 合并数组
2、shift 获取数组第一个元素 unshift 向数组首位添加一个元素
3、pop 获取数组中最后一个元素
4、slice 截取数组
5、splice 对数组的增删改
/*
* concat 合并数组
* 该方法并不会改变原有的数组结构,而是生成一个新的数组
* */
var arr1_1 = [1 , 2 , 3] , arr1_2 = [4 , 5];
var arr1_3 = arr1_1.concat(arr1_2);
console.log(arr1_1 , arr1_2 , arr1_3);//(3) [1, 2, 3] (2) [4, 5] (5) [1, 2, 3, 4, 5]
console.log('---------------------------------------------------------');
/*
* shift 获取数组中的第一个元素
* unshift 向数组第一项添加一个元素
* 该方法会把数组第一个元素给删除
* */
var arr2_1 = [1 , 2, 3 , 4];
var item2 = arr2_1.shift();
console.log(arr2_1 , item2);//(3) [2, 3, 4] 1
console.log(arr2_1.unshift(1));//(4) [1 ,2, 3, 4]
console.log('---------------------------------------------------------');
/*
* pop 获取数组中最后一个元素
* 该方法会把数组最后一个元素给删除
* */
var arr3_1 = [1 , 2, 3 , 4];
var item3 = arr3_1.pop();
console.log(arr3_1 , item3);//(3) [1, 2, 3] 4
console.log('---------------------------------------------------------');
/*
* slice 截取数组
* 该方法不会改变原有数组的结构,两个参数为[)左闭右开的区间,两个参数均代表index索引
* */
var arr4_1 = [1 , 2, 3 , 4];
var arr4_2 = arr4_1.slice(1 , 3);
console.log(arr4_1 , arr4_2);//(4) [1, 2, 3, 4] (2) [2, 3]
console.log('---------------------------------------------------------');
/*
* splice
* 数组方法中最强大的,包含数组操作的增删改
* 它会修改原有的数组结构,并返回一个新数组
* 可以传入多个参数splice(index , length , args)
* index 开始的索引 length 删除元素的长度 args 向索引处添加的元素(可以为多个)
* */
var arr5_1 = [1 , 2, 3 , 4 , 5];
//1、删除
var arr5_2 = arr5_1.splice(1 , 2);
console.log(arr5_1 , arr5_2);//(3) [1, 4, 5] (2) [2, 3]
//2、新增
var arr5_3 = [1 , 2, 3 , 4 , 5];
var arr5_4 = arr5_3.splice(1 , 0 , 9 , 8);
console.log(arr5_3 , arr5_4);//(7) [1, 9, 8, 2, 3, 4, 5] []
//3、修改
var arr5_5 = [1 , 2, 3 , 4 , 5];
var arr5_6 = arr5_5.splice(1 , 2 , 9 , 8);
console.log(arr5_5 , arr5_6);//(5) [1, 9, 8, 4, 5] (2) [2, 3]
二、String
1、concat 拼接字符串
2、slice 字符串截取
3、substring 字符串截取
4、substr 字符串截取
/*
* concat 拼接字符串
* */
var str1_1 = 'sky ';
console.log(str1_1.concat('blue'));//sky blue
console.log('---------------------------------------------------------');
/*
* slice 字符串截取
* 使用方法同数组一样
* */
var str2_1 = 'sky blue';
var str2_2 = str2_1.slice(1 , 5);
console.log(str2_1 , str2_2);//sky blue ky b
console.log('---------------------------------------------------------');
/*
* substring 字符串截取
* 使用方法同slice一样
* */
var str3_1 = 'sky blue';
var str3_2 = str3_1.substring(1 , 5);
console.log(str3_1 , str3_2);//sky blue ky b
console.log('---------------------------------------------------------');
/*
* substr 字符串截取
* 同样是接收2个参数,一个是开始截取的索引位置,一个是要截取的长度
* */
var str4_1 = 'sky blue';
var str4_2 = str4_1.substr(1 , 4);
console.log(str4_1 , str4_2);//sky blue ky b
console.log('---------------------------------------------------------');
三、ES6在处理数组中常用方式
1、数组过滤
2、数组循环(无返回值的)
3、数组循环(有返回值,按需求得到一个新的数组)
4、数组添加元素
5、数组按条件查询元素
6、数组按条件查询元素索引
7、数组查询某元素
8、数组元素内,条件判断1
9、数组元素内,条件判断2
10、根据数据的内容获取值
/*
* filter 数组过滤
* 该方法会返回一个新数组
* */
const arr1_1 = [1, 2, 3, 4, 5];
let arr1_2 = arr1_1.filter(item => item != 3);
console.log(arr1_2); //(4) [1, 2, 4, 5]
console.log('---------------------------------------------------------');
/*
* forEach 数组遍历
* 遍历的是当前数组
* */
const arr2_1 = ['a', 'b', 'c'];
arr2_1.forEach((item, index) => {
console.log(item, index); //a 0 b 1 c 2
});
console.log('---------------------------------------------------------');
/*
* map 数组遍历
* 遍历的是当前数组,但是会返回一个新的数组,回调方法里需要return内容
* */
const arr3_1 = [2, 3, 4];
let arr3_2 = arr3_1.map((item, index) => {
return(item * item + index) //新数组的内容为其中单个元素但是是乘积加上索引
});
console.log(arr3_2);
console.log('---------------------------------------------------------');
/*
* 数组添加元素
* 得到的是一个新数组
* */
const arr4_1 = [1, 2];
let arr4_2 = [...arr2_1, 3, 4];
console.log(arr4_2); //(4) [1, 2, 4, 5]
console.log('---------------------------------------------------------');
/*
* find() 根据条件查找某一个条件的元素
* 查找到就返回该元素,反之则返回undefined
*/
const arr5_1 = [1, 3, 5, 9, 15];
let ret5_1 = arr5_1.find((val, i, arr) => {
return val > 6
})
let ret5_2 = arr5_1.find((val, i, arr) => {
return val < 0
})
console.log(ret5_1, ret5_2); // 9 undefined
console.log('---------------------------------------------------------');
/*
* findIndex() 根据条件查找某一个条件的元素索引
* 查找到就返回该元素索引,反之则返回-1
* 若仅仅查找某个元素,则indexOf效率会远远高于findIndex
*/
const arr6_1 = [1, 3, 5, 9, 15];
let ret6_1 = arr6_1.findIndex((val, i, arr) => {
return val > 6
})
let ret6_2 = arr6_1.findIndex((val, i, arr) => {
return val < 0
})
console.log(ret6_1, ret6_2); // 9 -1
console.log('---------------------------------------------------------');
/*
* includes() 查找数组中是否存在某元素
* 查找到就返回true,反之false
*/
const arr7_1 = [1, 3, 5, 9, 15];
let ret7_1 = arr7_1.includes(5)
let ret7_2 = arr7_1.includes(100)
console.log(ret7_1, ret7_2); // true false
console.log('---------------------------------------------------------');
/*
* some() 给一个条件
* 若数组中任意一元素满足条件,则返回true
* 若数组中元素均不满足条件,则返回false
*/
const arr8_1 = [1, 3, 5, 9, 15];
let ret8_1 = arr8_1.some((val, i, arr) => {
return val > 6
})
let ret8_2 = arr8_1.some((val, i, arr) => {
return val < 0
})
console.log(ret8_1, ret8_2); // true false
console.log('---------------------------------------------------------');
/*
* every() 给一个条件
* 若数组中所有元素均满足条件,则返回true
* 若数组中元素,只要一个不满足条件,则返回false
*/
const arr9_1 = [1, 3, 5, 9, 15];
let ret9_1 = arr9_1.every((val, i, arr) => {
return val > 0
})
let ret9_2 = arr9_1.every((val, i, arr) => {
return val <= 9
})
console.log(ret9_1, ret9_2); // true false
console.log('---------------------------------------------------------');
/*
* reduce(callback,[initialValue]) 主要可用于通过数组中的item,求出一个值,以求和为例
* callback 执行数组中每个值的函数,包含四个参数——previousValue 上一次调用回调返回的值,或者是提供的初始值(initialValue)currentValue 数组中当前被处理的元素
* index 当前元素在数组中的索引 array调用 reduce 的数组
* initialValue (作为第一次调用 callback 的第一个参数。)
*/
const arr10_1 = [1 , 10 , 100]
let ret10_1 = arr10_1.reduce((lastRet , item) => {
return lastRet + item
} , 1000)
console.log(ret10_1); //
console.log('---------------------------------------------------------');
四、ES6在处理对象中常用方式
1、对象添加
2、对象覆盖
3、获取对象中的值
/*
* 对象添加
* 得到一个新对象
* */
const obj1_1 = {
a: 1,
b: 2
},
c = 3;
let obj1_2 = { ...obj1_1,
c
};
console.log(obj1_2); //{a: 1, b: 2, c: 3}
console.log('---------------------------------------------------------');
/*
* 对象覆盖
* 覆盖目标对象
* */
let obj2_1 = {
a: 1,
b: 2
},
obj2_2 = {
a: 11,
b: 22
},
obj2_3 = {
c: 3
};
Object.assign(obj2_1, obj2_2, obj2_3);
console.log(obj2_1); //{a: 11, b: 22, c: 3}
console.log('---------------------------------------------------------');
/*
* 获取对象中的值
* */
const obj3_1 = {
a3: 1,
b3: 2,
c3: 3
};
let {
a3,
b3,
c3
} = obj3_1;
console.log(a3, b3, c3); //1 2 3
搞定!!!
记录个人数组、字符串自己常忘记的方法,以及ES常用处理方式的更多相关文章
- VC++ 在两个程序中 传送字符串等常量值的方法:使用了 WM_COPYDATA 消息(转载)
转载:http://www.cnblogs.com/renyuan/p/5037536.html VC++ 在两个程序中 传递字符串等常量值的方法:使用了 WM_COPYDATA 消息的 消息作用: ...
- 计算机二级-C语言-程序修改题-190116记录-对数组进行排序的两种方法。
//函数fun的功能是:将n个无序整数从小到大排序. //冒泡排序法:小数往下浮,大数往上浮.把数都存到一个数组,然后两两比较,大数往后交换.双层递减循环. //第二种方法:都放入一个数组中,然后记录 ...
- VC++ 在两个程序中 传递字符串等常量值的方法:使用了 WM_COPYDATA 消息的
消息作用: 在进程间共享数据(内部通过创建内存映射文件) 消息介绍:需要用到的数据结构/类型:typedef struct tagCOPYDATASTRUCT { ULONG_PTR dw ...
- java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表. 前端数据转化与请求 var contracts = [ {id: '1', name: 'yanggb合同1'}, {i ...
- JavaScript 字符串实用常操纪要
JavaScript 字符串用于存储和处理文本.因此在编写 JS 代码之时她总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作 Cookie 时,在转换各种不同 Da ...
- 数组和CLR-非常特殊的关系
目录 数组和CLR-非常特殊的关系 公共语言运行时(CLR)的基础 内存和类型安全 实现细节 特殊帮助器类 移除边界检查 分配数组 运行时以不同的方式对待数组 进一步阅读 数组源码引用 参考文档 数组 ...
- ***php解析JSON二维数组字符串(json_decode函数第二个参数True和False的区别)
客户端的请求体中的数据:[{"msg_id": 1, "msg_status": "HAS_READ" }, { "msg_id& ...
- [译]关于Java 字符串最常被问到的十个问题
(说明,该文章翻译自Top 10 questions of Java Strings) 下面是关于Java字符串最常被问到的十个问题 1.怎么去比较字符串?使用==还是使用equals()? 简单来说 ...
- JavaScript 数组、字符串、Map、Set 方法整理
在线阅读 https://www.kancloud.cn/chenmk/web-knowledges/1080519 数组 isArray():Array.isArray(value) 用于检测变量是 ...
随机推荐
- corethink功能模块探索开发(十四)后台编辑按钮
效果图: 1.添加下图55&58行代码 2.实现edit方法 位于Equip/Admin/DeviceRepaireAdmin.class.php中 public function edit( ...
- Phpstorm 换行设置(复制 http://jingyan.baidu.com/article/86fae346b2cb673c49121ad3.html)
很多时候代码太长超出了屏幕的宽度,默认情况下没有自动换行的,我们需要把光标往后挪,才能看到后面代码,显得略为蛋疼,我个人比较喜欢能够自动换行. 下面就说下Phpstorm里如何默认开启自动换行(use ...
- PAT 天梯赛 L1-014. 简单题 【水】
题目链接 https://www.patest.cn/contests/gplt/L1-014 AC代码 #include <iostream> #include <cstdio&g ...
- 在linux下打开文件出现^M,^H
0 Problem 在服务器上跑keras实验,然后用tee指令把实验结果保存在文本文件中. 文本文件在本机linux下用vim打开文件时会出现^M,^H.用sublime打开也会出现奇怪的字符. 1 ...
- Web开发相关笔记 #01#
前端学习纲要 ※jQuery 参考 ※ 整理 Chrome 收藏夹的小技巧 ※ 解决 AJAX 跨域获取 cookie ※ 记一次 MyBatis 相关的 debug [1] 前端学习纲要: ♦ 第一 ...
- 官方online ddl
一.5.6版本online DDL 操作 In Place Rebuilds Table Concurrent DML Only Modifies Metadata 说明 add/create sec ...
- Sybase:delete与truncate、drop区别
Sybase:delete与truncate.drop区别 区别: TRUNCATE TABLE TABLENAME:删除内容.释放空间但不删除定义. DELETE FROM TABLENAME:删除 ...
- SpringBoot 加载配置文件
1.application.properties或application.yaml是SpringBoot默认的配置文件. 可以通过@Value注解 配合 ${......}来读取配置在属性文件中的内容 ...
- vim 中的常用编辑
1.将1到3列行首添加‘#’ :1,3s/^/#/g 2.将1到3列行首去除‘#’ :1,3s/^#//g 3.将1到3列中前两列字符去掉 :1,3s/^..//g 4.将1到3列中行末前两个字符去掉 ...
- Pandas可视化
基本绘图:绘图 Series和DataFrame上的这个功能只是使用matplotlib库的plot()方法的简单包装实现.参考以下示例代码 - import pandas as pd import ...