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. 【C#】读取Excel中嵌套的Json对象,Json带斜杠的问题(其三)

    除了上一篇中提到的对字符串的字符替换操作,去掉Json中的转义符反斜杠\之外,还发现了更加简单的办法. 就是使用Newtownsoft.Json序列化Json时,将嵌套的Json对象(字符串)转为JO ...

  2. 一致性 Hash 学习与实现

    普通的 Hash 解决的是什么问题? 下图是一个普通的余数法构造的哈希表. 一般在编程中使用哈希表,某个 bucket 突然就没了的概率比较小,常见的是因为负载因子太大需要增加 bucket,然后 r ...

  3. python3 log 日志记录

    在调试的过程中,很多地方需要用到日志 如下 import logging LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s&qu ...

  4. docker被屏蔽后下载方法

    docker镜像默认的官网上传平台:https://hub.docker.com/,k8s运行时需要从google下载镜像(k8s.gcr.io),但该网被屏蔽了,怎样下载到所需镜像呢? 1. 可在知 ...

  5. 解决java.lang.annotation.AnnotationFormatError: Invalid default: public abstract java.lang.Class org.robolectric.annotation.Config.application()

    Deleting the .gradle folder worked for me too. Odd. Guessing some high level caching going on somewh ...

  6. Vue之初识Vue

    前言 如果你之前已经习惯了用jQuery操作DOM,学习Vue.js时请先抛开手动操作DOM的思维, 因为Vue.js是数据驱动的,你无需手动操作DOM.它通过一些特殊的HTML语法,将DOM和 数据 ...

  7. Ubuntu系统监控indicator-sysmonitor

    参考: http://www.cnblogs.com/EasonJim/p/7130171.html 安装indicator-sysmonitor sudo add-apt-repository pp ...

  8. EnumUtil 链表转换工具类

    package com.das.common.util; import org.springframework.util.CollectionUtils; import java.lang.refle ...

  9. Delphi过程函数传递参数的几种方式

    Delphi过程函数传递参数的几种方式  在Delphi过程.函数中传递参数几个修饰符为Const.Var.Out. 另一种不加修饰符的为默认按值传递参数. 一.默认方式以值方式传递参数 proced ...

  10. [原][openstack-pike][controller node][issue-3][horizon] dashboard show internal error 500 Cannot serve directory /var/www/html

    问题点: 安装完pike后发现只能使用 ip:80 登录到http的主页面 不能使用 http://controller_ip:80/dashboard 登录openstack登录页面.如下图 重启h ...