首页 > 作文

js往数组中添加元素添加方法(js给数组对象添加一个对象)

更新时间:2023-04-05 08:17:31 阅读: 评论:0

数组的创建

几种创建数组的方法 1. let a1 = new array(); 2. let a1 = array();//与第一种方式等价 3. let a1 = array.from(obj); //es6 4. let a1 = array.of(); //es6

1,2两种方法创建数组,如果传入的参数是数字,表示新创建的数组的长度,而不是数组的元素。of方法解决1,2两种方法的歧义,数字代表的是数组的元素。
array.from方法用于将类数组结构转换为数组实例,array.of方法用于将一组参数转换为数组实例。

array.from()第一个参数是一个可迭代的类数组对象,或者有一个length属性的可索引元素结构。

array.from("polo"); //['p', 'o', 'l', 'o']const m = new map().t(1,2).t(3,4);const s = new t().add(1).add(2).add(3).add(4);array.from(m); //[[1,2],[3,4]]array.from(s); //[1,2,3,4]

array.from()可接收第二个可选映射函数参数,这个函数可以直接增强新数组的值,也就是说可以对第一个参数里的值做处理,新建数组的值为经过第二个参数函数加工的值。

教案评语
const a2 = array.from([1,2,3,4], x => x * 2); //[2,4,6,8]

array.from()还可以接收第三个可选参数,用于指定映射函数中this的值,但这个重写的this值在箭头函数中不适用。

const a3 = array.from([1,2,3,4],function(x){return x**this.exponent},{exponent:2}); //[1,4,9,16]

数组length属性
数组的length属性不是只读的,通过修改length属性,可以从数组末尾删除或添加元素。

let colors = ['red', 'blue', 'green'];colors.length=4;//数组末尾增加一个元素,值为undefinedcolors[99] = 'black';//数组长度变为100,3-98位置的过故人庄翻译元素值为undefined

检查是否为数组
es6之前的版本,检查数组用各类方式,各有各的道理,也有各自的问题。es6提供了array.isarray方法,确定一个值是否为数组。

if (array.isarray(value)) {    //操作数组}

数组迭代方法

1. keys() //返回数组索引的迭代器2. values() //返回数组元素的迭代器3. entries() //返回索引/值对的迭代器4. for(const [index,element] of a.entries()) //es6解构语法在循环中拆分键值对

复制和填充
array.copywithin(): 按照指定范围浅复制数组中的部分内容,然后将他们插入到指定索引开始的位置。第1个参数表示插入位置的索引,第2个可选参数表示开始复制的索引位置。

let ints;ret = () => ints = [0,1,2,3,4,5,6,7,8,9];ret();ints.copywithin(5); //[0,1,2,3,4,0,1,2,3,4]ret();ints.copywithin(0,5); [5,6,7,8,9,5,6,7,8,9]ret();ints.copywithin(4,0,3); //[0,1,2,3,0,1,2,7,8,9]

array.fill():第1个参数,表示用于填充的元素,第2个可选参数,表示填充的开始位置,第3个可选参数,表示填充的结束位置。fill()静默忽略超出数组边界,零长度及方向相反的索引范围。

const zeroes = [0, 0, 0, 0, 0];zeroes.fill(5); //[5,5,5,5,5];zeroes.fill(0);zeroes.fill(7,3); //[0,0,0,7,7]zeroes.fill(0);zeroes.fill(7,1,3); //[0,7,7,0,0]

数组排序方法

rever(): 将数组元素反向排列
sort():按升序排列数组元素,sort()会在每一项上调用string()转型函数,然后比较字符串来决定顺序。sort()方法可以接收一个比较函数。用于判断哪个值应该排在前面。

let values = [0,1,5,10,15];values.rever(); //[15,10,5,1,0]values.sort(); //[0,1,10,15,5]values.sort((x,y) => x - y); //[0,1,5,10,15]

迭代方法

every():对数组每一项都运行传入的函数,如果每一项都返回true,则这个方法返回农业基本建设项目管理办法true。
some():对数组每一项都运行传入的函数,如果有一项函数返回true,则这个方法返回true。
filter():对数组每一项都运行传入的函数,函数返回true的项会组成之后的返回。
map(): 对数组每一项都运行输入的函数,返回由每次函数调用的结果构成的数组。
foreach():对数组每一项都运行传入的函数,没有返回值。

let numbers =何刘 [1,2,3,4,5,6];numbers.filter((item,index,array) => item > 2); //[3,4,5,6]numbers.map((item,index,array) => item * 2); //[2,4,6,8,10,12]numbers.foreach((item,index,array) => {  //执行某些操作});

归并方法

reduce():从数组第一项开始遍历到最后一项。
reduceright():从最后一项开始遍历至第一项。

let values = [1,2,3,4,5];let sum = values.reduce((prev,cur,index,array) => prev +cur); //15

数组其他方法

concat(): 在现有数组全部元素基础上创建一个新数组
slice():创建一个包含原有数组中一个或多个元素的新数组。
splice():在数组中插入(删除、替换)元素。第1个参数,操作的位置,第2个参数,要删除的元素个数,后面的n个参数,插入到数组中的元素。
indexof():查找元素所在的索引位置。
lastindexof(): 和indexof方法类似,区别是从后往前找。
includes():判断是否包含元素。

let color = ['red','green','blue'];let color2 = colors.conca安适t('yellow',['black','brown']);//['red','green','blue','yellow','black','brown']let color3 = colors.slice(1); //['green','blue']let color3 = colors.slice(1,2); //['green']let removed = colors.splice(0,1); // removed = red; colors = ['green','blue']colors.splice(1,0,'yellow','orange'); //在第一个位置插入两个元素 ['green',blue','yellow','orange']let numbers = [1,2,3,4,5,6,7,8,9];numbers.indexof(4);//3numbers.includes(5);//true

map:

es6新增的集合类型,可以给map构造函数传入一个可迭代对象,需要包含键/值对数组。map可以使用任何javascript数据类型作为键。map的值类型也是没有限制的。map实例会维护键值对的插入顺序,可以根据插入顺序执行迭代操作。

api:
has(key) :判断键是否存在。
t(key,value):设置键值对。
get(key):根据key获取对应的值。
delete(key):删除键值对。
clear():清除这个map。
size属性:获取map的长度。

map与object比较:

内存占用:不同浏览器情况不同,但给定固定大小的内存,map可以存更多的键值对
插入性能:插入map一般会稍快。
查找速度:如果只包含少量键值对,object速度更快,如果代码涉及大量查找操作,某些情况下选object可能更好
删除速度:map的delete()操作性能更优
综上所述,一般情况下使用map代替object做键值操作是更明智的选择

weakmap:

与map类似的数据 结构,主要应对垃圾回收优化操作,它不会阻止垃圾回收操作。weakmap不可迭代键,也不能clear()整个数据。它非常适合保存关联元数据,比如dom树种的一个元素,作为weakmap的key,当dom元素被删除是,weakmap对应的值被销毁。如果把dom元素做为map的key,则不会释放dom元素,造成内存浪费。这是weakmap中weak的正解。

t:

集合,存储不重复的值。t会维护插入是的顺序,因此支持顺序迭代。

api:
add():增加值。
has():判断是否包含值。
delete():删除值
size属性:t长度

本文发布于:2023-04-05 08:17:30,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/167528ced356749445109a8f40c07722.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:js往数组中添加元素添加方法(js给数组对象添加一个对象).doc

本文 PDF 下载地址:js往数组中添加元素添加方法(js给数组对象添加一个对象).pdf

标签:数组   元素   函数   方法
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图