js中的Array
js中的Array
啥是ArrayLike对象
类似,下面这种对象的就是ArrayLike
var arraylike = {
0: "a",
1: "b",
2: "c",
length: 3
}
arraylike.forEach(element => { // 报错
console.log(element);
});
ArrayLike对象和数组类似,但是不能使用数组的方法,因为它是继承自Object.prototype而不是Array.prototype 获取dom元素的方法,一般都会产生ArrayLike对象
将ArrayLike对象转换成Array
方式一:
var array = Array.from(arraylike); 方式二:
var array = Array.from(arraylike, item => item+item);
reduce方法
reduce方法其实类似于叠罗汉,取数组中第一个参数和第二个参数做运算,然后将结果返回,作为下一次运算的第一个元素与数组中的第三个元素运算,重复这种操作
var array = [1,2,3,4,5];
var res = array.reduce((a, b) => a + b); // 15 求和运算
var res = array.reduce((a, b) => a + b, 10); // 25 传递第二个参数作为运算的起始第一个参数 数组格式化成对象,这对于处理后端api数据,方便前端渲染很有用
var array = [
{name: "小明", age: "10"},
{name: "小张", age: "20"},
{name: "小王", age: "30"},
] 方式一:
var obj = array.reduce((a, b) => {
a[b.name] = b.age;
return a;
}, {}); // { '小明': '10', '小张': '20', '小王': '30' } 方式二:
var obj = array.reduce((a, b) => Object.assign(a, {
[b.name]: b.age
}), {}); 方式三:
var obj = array.reduce((a, b) => ({...a, [b.name]: b.age}), {});
map方法
map方法循环便利所有元素,产生一个新的数组 var arr = [1,2,3,4,5];
var res = arr.map(item => item+1); // [ 2, 3, 4, 5, 6 ] var res = arr.map(function(item){
return item+this.init;
}, {
init: 1
}); // [ 2, 3, 4, 5, 6 ]
filter方法
filter方法循环便利所有元素,根据条件筛选出符合的元素,产生一个新的数组
var arr = [1,2,3,4,5];
var res = arr.filter(item => item > 3) // [ 4, 5 ]
sort方法
sort方法在原数组的基础上进行排序
按照字母表顺序排序
var arr = ["c", "b", "f", 1, "g", 2];
arr.sort((a, b) => a.toString().localeCompare(b)); // [ 1, 2, 'b', 'c', 'f', 'g' ] 升序排序
var arr = [3,5,2,1,9];
arr.sort((a, b) => a - b);
for...of
遍历数组
var arr = [3,5,2,1,9];
for(let item of arr) {
console.log(item);
}
every
有条件的暂停遍历
var arr = [3,5,2,"end",1,9];
arr.every(item => {
console.log(item);
return item != "end";
})
some
和上面的every逻辑上正好相反
var arr = [3,5,2,"end",1,9];
arr.some(item => {
console.log(item);
return item === "end";
})
find和findIndex
var arr = [
{name: "小明", age: "10"},
{name: "小张", age: "20"},
{name: "小王", age: "30"},
]; var res = arr.find(item => item.age==20); // { name: '小张', age: '20' }
var res = arr.findIndex(item => item.age==20); // 1
解构
var arr = [1,2,3,4,5];
var [a,,b, ...c] = arr;
console.log(a, b, c); // 1 3 [ 4, 5 ]
去重
var arr = [1,1,2,1,1,2,3,3]; 利用reduce进行数组去重
var res = arr.reduce((a,b) => {
if(a.indexOf(b) === -1) {
a.push(b);
}
return a;
}, []) // [ 1, 2, 3 ] 利用filter进行去重
var res = arr.filter((a,b,c) => {
return c.indexOf(a) === b;
}) 利用Set去重
var res = [...new Set(arr)];
js中的Array的更多相关文章
- js中数组Array的一些常用方法总结
var list = new Array()是我们在js中常常写到的代码,今天就总结一下Array的对象具有哪些方法. list[0] = 0; list[1] = 1; list[2] = 2; 或 ...
- JS中数组Array的用法{转载}
js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个我测试的代码^-^var arr = new Array();arr[0] = "aaa";arr[1] ...
- JS中数组Array的用法示例介绍 (转)
new Array() new Array(len) new Array([item0,[item1,[item2,...]]] 使用数组对象的方法: var objArray=new Array() ...
- JS中数组Array的用法
js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了. var arr = new Array(); // 初始化数组arr[0] = "aaa";arr[1] = ...
- D3.js中对array的使用
由于D3类库和array密切相关,我们有必要讨论一下D3中的数据绑定以及在数组内部运算的方法. 1.D3中的数组 和其他编程语言一样,D3的数组元素可以是数字或者字符等类型,例如: someData= ...
- js中关于array的常用方法
最近总结了一些关于array中的常用方法, 其中大部分的方法来自于<JavaScript框架设计>这本书, 如果有更好的方法,或者有关于string的别的常用的方法,希望大家不吝赐教. 第 ...
- JS中部分 Array 对象方法介绍
1.concat() concat() 方法用于连接两个或多个数组.该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本 <script type="text/javascrip ...
- js中数组Array 详解
unshift:将参数添加到原数组开头,并返回数组的长度 pop:删除原数组最后一项,并返回删除元素的值:如果数组为空则返回undefined push:将参数添加到原数组末尾,并返回数组 ...
- js中的Array数组清空
var data = new Array();//数组 data.length = 0;//数组的长度等于0,数组的项就会被清空
随机推荐
- URL的编码
+ URL 中+号表示空格 %2B 空格 URL中的空格可以用+号或者编码 %20 / 分隔目录和子目录 %2F ? 分隔实际的 URL 和参数 %3F % 指定特殊字符 %25 # 表示书签 %23 ...
- IOS-将任意对象存进数据库
model // // HMShop.h // 将任意对象存进数据库 // // Created by apple on 14/11/20. // Copyright (c) 2014年 heima. ...
- 009——VUE中watch监听属性变化实现类百度搜索栏功能
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- python基础之迭代器协议和生成器(二)
一.什么是迭代器: 迭代是Python最强大的功能之一,是访问集合元素的一种方式. 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束. 迭代器是一个可以记住遍历的位置的对象. 迭代器的 ...
- 不用配置 , 快速搭建react环境
链接 create-react-app react-webpack-generators react-cli
- Azure VM Scalable Sets -- 适用IAAS架构
1. 选择Virtual Machine scale set2. 选择resource manager(或创建最新)3. 基本信息配置4. 配置scale的参数(可伸缩的balance模型):VM最小 ...
- 本站上线KMS服务~一句命令激活windows和office
服务器地址:kms.luody.info 更新: 脚本维护更新:2016-09-29 服务端版本:vlmcsd-1108-2017-01-19-Hotbird64 服务作用:在线激活windows和o ...
- 自己搭建MVC时遇到的一些问题及解决办法
错误1 The view 'Index' or its master was not found or no view engine supports the searched locations. ...
- 【Android】Android 学习记录贴
官网 教程学习笔记 Genymotion 安卓虚拟器太慢,用Genymotion(装载eclipse的插件) 利用Genymotion运行Android应用程序 1.首先,点击 来启动或者创建您要使用 ...
- 51nod 1089 最长回文子串 V2(Manacher算法)
回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串. 输入一个字符串Str,输出Str里最长回文子串的长度. 收起 输入 输入Str(Str的长度 <= 100000) ...