s的方法
根据index取value:
取首尾项,arr[0], arr[arr.length-1] 根据value取index(判断是否包含子字符串):
s.indexOf 栗子:
'maotai'.indexOf('mao'), 如果不包含则返回-1,如果包含返回子字符串下标 取切片
s.substr(1,3) //含3
s.substring(1,3)//不含3
和arr之间的转换:
s.split: s转为arr
s = 'maotai|maomao'
s.split('|') // ["maotai", "maomao"] arr.join: arr转为s
arr = ["maotai", "maomao"]
arr.join('|') // 'maotai|maomao' arr.toString和arr.toFixed
arr.toSting() //["mao", "tai"] --> "mao, tai"
price.toFixed(2) //数字类型保留2位小数

arr方法

// 合并数组(栗子: 将二维数组合并为一维数组, reduce+arr.concat(arr2))
arr.concat(arr2) // 1.for循环遍历数组
arr = ['mao', 'tai'];
for (let i = 0; i < arr.length; i++) {
console.log(i,typeof i); //0 'number'
console.log(arr[i]);
}
// 2,forEach 不支持return
// 3,for in,key转换为str类型, 数组的私有属性也打印了.
// 4.for of, 既能return,又不会遍历私有属性
arr = ['mao', 'tai'];
for(val of arr){
console.log(val);
} 参数类型: 基本都是回调函数
返回值:
修改自身: 否
回调函数返回值: arr的方法 1.arr.forEach: 遍历
注: 不支持return 返回值: 无
修改自身: 否
回调函数返回值:无(不支持return) //arr的forEach循环
arr.forEach(function (item, index) {
console.log(index + ':' + item);
}); //arr的forin循环
let arr = ['mao','tai'];
for(let i in arr){
console.log(i,typeof i); //将index转为str类型打印
}
//0 string //对象的遍历(遍历key, 遍历values)
let obj = {name:'maotai',age:22};
console.log(Object.keys(obj)); //取index, [ 'name', 'age' ]
console.log(Object.values(obj)); //取items, [ 'maotai', 22 ]
for(i in Object.keys(obj)){
console.log(i,typeof i); //0 string
} 2.arr.map
注: 支持return 返回值: newArr
修改自身: 否
回调函数返回值:对老数组每个item处理的结果, 作为新数组的item 栗子: 得出arr每项*10的newArr
let arr2 = arr.map(function (index, item) {
return item * 10;
}); 栗子:产生'<li>1</li><li>2</li><li>3</li>' let res2 = [1, 2, 3].map(function (item) {
return `<li>${item}</li>`; //es6的字符串模板写法.
});
console.log(res2.join('')); // <li>1</li><li>2</li><li>3</li> 3.arr.filter
功能: 过滤arr,得到newArr 返回值: newArr
修改自身: 否
回调函数返回值:布尔, 如果true,添加到新数组 栗子: 过滤arr 2-5之间的数字
let res2 = [0, 1, 2, 3, 4, 5].filter(function (item) {
return item>2 && item <5; //返回true,则放到新数组里
}); 栗子: 删除表单
remove(p) { //p代表当前删除的这一项
this.products = this.products.filter(item => item != p);
} 4.arr.reduce: 收敛
功能: 将arr的item合并(收敛)
返回值: newArr
修改自身: 否
回调函数返回值:布尔 // 探究arr.reduce(回调())回调函数的4个参数
let res = arr.reduce(function (prev, next, index, item) {
// console.log(arguments);
// console.log(prev, next);
return prev + next; //本次的返回值会作为上一次的prev
}); console.log(res); // 栗子1: 计算价格
let res1 = [0,
{'price': 30, count: 3},
{'price': 60, count: 6},
{'price': 90, count: 9}
].reduce(function (prev, next) {
return prev+next.price*next.count;
}); //更优雅的写法
let res2 = [
{'price': 30, count: 3},
{'price': 60, count: 6},
{'price': 90, count: 9}
].reduce(function (prev, next) {
return prev+next.price*next.count;
}, 0); // 栗子2: 二维数组变一维数组
let res3 = [
[1,2,3],
[4,5,6],
[7,8,9]
].reduce(function (prev,next) {
return prev.concat(next);
});
console.log(res3); 1.arr.include:判断是否包含此项 功能: arr中是否包含某一项
返回值: 布尔
修改自身: 否 [1,2,3].includes(1) //true
[1,2,55] 2.arr.find:查找每项中是否包含关键字,
功能: 返回包含某个子字符的item.
返回值: 找到的那一项item
修改自身: 否
回调函数返回值:布尔, 返回true,表示找到, 找到后立即停止遍历. 栗子: 取出包含子字符串的item let res = ['maotai','tai'].find(function (item) {
return item.toString().indexOf('mao') > -1;
});
console.log(res); //本质算法: 'maotai'.indexOf('mao') 3, arr.every
功能: 找false,找到false后停止,返回false 参数: 回调函数
返回值: 布尔 栗子: 检测arr所有元素是否都大于18
let res = [23, 33, 43].every(function (item) {
return item >= 18;
});
console.log(res); //true
4.arr.some(和arr.every相反)
功能: 找true,找到true后停止,返回true

箭头函数

箭头函数:
1, 无关键字
2, 如果1个参数, 则可以省掉小括号
3, 无this, this指向上一级作用域的this // function fn(age) {
// console.log(age);
// } fn = age => console.log(age);
fn(20); =========== return关键词可以省略
function add1(arg){
return arg+1;
} add_1(10); // 11 let arg2 = arg=>arg+2;
add2(10); //12 // 有{}必须写return关键字,
let arg2 = arg=>{return arg+2}; // 无{},箭头后面的内容默认return
let arg2 = arg=> arg+2; / //如果函数不需要命名
age => console.log(age); // 箭头函数解决了this问题. this指向上一级
created() { // 在数据被初始化后会调用,this指向指的也是vm实例,钩子函数
axios.get('./carts.json').then(res => { //success
this.products = res.data; //箭头函数改变了this的指向, 这里回调this本来指向window
}, err => {
console.log(err);
});
}, 栗子:
axios.get('./carts.json').then(res => {
console.log(res.data);
}, err => {
console.log(err);
})

[js]es6语法: 字符串和数组的方法的更多相关文章

  1. 从零开始的全栈工程师——js篇2.13(字符串与数组的方法)

    基类Object的子类有 Function  Array  Number  Boolean  String  Date  Math  RegExp 函数 数组 数字 布尔 字符串 日期 算数 正则 都 ...

  2. 关于ES3、ES5、ES6以及ES7所有数组的方法(api)的总结

    起因:工作用经常用到操作数组的方法,这里进行一下总结,我尽量以简洁的语言概括每个方法(api)的作用.如果您想快速定位,可以Control+F 然后搜相应的方法即可定位 :) ES3的数组方法 joi ...

  3. javascript---关于字符串和数组的方法

    在学习javascript过程中,遇到过很多关于数组和字符串的一些操作.之前也总结了不少方法,可是一遇到自己用的时候,就忘了.不是忘了方法叫什么名,就是忘了方法的参数有什么,返回的是什么? 现在就再次 ...

  4. JS中实现字符串和数组的相互转化

    早上起来看了一道js的面试题,是这样描述的:利用var s1=prompt("请输入任意的字符串","")可以获取用户输入 的字符串,试编程将用户输入的字符串“ ...

  5. JS中判断对象是不是数组的方法

    JavaScript中检测对象的方法 1.typeof操作符 这种方法对于一些常用的类型来说那算是毫无压力,比如Function.String.Number.Undefined等,但是要是检测Arra ...

  6. js数字、字符串、数组之间的转化

    1.数组转字符串 var a, b; a = ,,,,); b = a.join("-"); 2.字符串转数组 var s = "abc,abcd,aaa"; ...

  7. js字符串、数组处理方法、以及一些常用js方法

    1.截取获得某字符串后面的字符: var i = id.substring(id.indexOf("+") + 1, id.length);//获取+后面的字符 2.截取量字符串之 ...

  8. JS基础语法---String对象下的方法(字符串的方法)

    实例方法---->必须要通过new的方式创建的对象(实例对象)来调用的方法 静态方法---->直接通过大写的构造函数的名字调用的方法(直接通过大写的对象名字调用的) 字符串的常用属性: . ...

  9. JS常见的几种数组去重方法

    总结一下JS中用到的数组去重的方法  方法一: 该方法利用对象的属性值不能相同: function arrDelLikeElement (array) { const result = []; con ...

随机推荐

  1. R语言 ggplot2包

    R语言  ggplot2包的学习   分析数据要做的第一件事情,就是观察它.对于每个变量,哪些值是最常见的?值域是大是小?是否有异常观测? ggplot2图形之基本语法: ggplot2的核心理念是将 ...

  2. 【Python】 Numpy极简寻路

    [Numpy] 先感叹下最近挖坑越来越多了.. 最近想不自量力地挑战下ML甚至DL.然而我也知道对于我这种半路出家,大学数学也只学了两个学期,只学了点最基本的高数还都忘光了的渣滓来说,难度估计有点大. ...

  3. MySql快速插入以及批量更新

    MySql快速插入以及批量更新 插入: MySql提供了可以一次插入多条数据的用法: [sql] INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6), ...

  4. win2003远程桌面怎么切换到多用户?

    怎么用远程桌面切换server2003的多用户的问题?server2003操作系统的远程桌面是多用户的,就是你的机子远程桌面到服务器而其它机子也可以远程桌面,所以往往有时候你看不到原始的桌面的样子,所 ...

  5. LeetCode - 498. Diagonal Traverse

    Given a matrix of M x N elements (M rows, N columns), return all elements of the matrix in diagonal ...

  6. mysql按位的索引判断位的值

    DELIMITER $$ DROP FUNCTION IF EXISTS `value_of_bit_index`$$/*计算数字的某个位的值*/CREATE FUNCTION `value_of_b ...

  7. flask使用pymysql连接MySQL,生成xls文件并下载到本地

    版本一:将MySQL数据写入到excel(xsl)文件并下载到默认文件夹(一般问电脑的下载文件夹里面),并显示特效到前端页面. flask框架连接MySQL,我们使用pymsql这个工具,如下操作: ...

  8. window10安装composer

    第一步: 在https://getcomposer.org/download/页面下的Manual Download里下载最新的版本. 下载下来的是composer.phar文件,把这个文件放在你的p ...

  9. linux安装rabbitmq以及相关的操作命令

    1.安装rabbitmqa)进入rabbitmq文件的存放目录b)rpm -ivh rabbitmq-server-3.5.4-1.noarch.rpm2.修改配置cd /etc/rabbitmqcd ...

  10. Druid连接池(一)

    介绍 Druid首先是一个数据库连接池,但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQL Parser. 支持的数据库 Druid支持所有JDB ...