创建数组_如何创建数组

js数组

js的数组不是典型的数组

典型的数组

元素的数据类型相同

使用连续的内存储存

通过数字下标获取元素

但是js的数组不这样

元素的数据类型可以不同

内存不一定连续的(对象是随机储存的)

不可以通过数字下标,而是通过字符串下标

这意味着数组可以有任何的key

比如:
let arr = [1,2,3]
let['xxx'] =1

对比不同:
典型的数组:连续存储的

75e1249630f480569fd495f91d97147c.png


但是js的数组:

f3c628f4e623ee27dcb28fbd89d092b2.png
//创建一个数组:
let arr = [1,2,3]
let arr = new Array(1,2,3)
let arr = new Array(3)//长度
//转化数组
let str = '1,2,3'
undefined
str.split(',')
(3) ["1", "2", "3"]
let str = '123'.split('')
undefined
str
(3) ["1", "2", "3"]
Array.from({0:'1',1:'b',length:4})
(4) ["1", "b", undefined, undefined]

图片来自于:

写代码啦!​xiedaimala.com

伪数组(偷偷转化为数组)

伪数组的原型链中并没有数组的原型,没有数组共用属性的数组就是伪数组

什么是伪数组?

  1. 拥有 length 属性,其它属性(索引)为非负整数(对象中的索引会被当做字符串来处理,这里你可以当做是个非负整数串来理解)
  2. 不具有数组所具有的方法
let divList = document.querySelector('div')
伪数组的原型链中并没有数组的原型原理:
array = [1,2,3,4,5](5) [1, 2, 3, 4, 5]array.__proto__ === Array.prototype
true
array(5) [1, 2, 3, 4, 5]
0: 1
1: 2
2: 3
3: 4
4: 5
length: 5
__proto__: Array(0)//第一层原型
concat: ƒ concat()
constructor: ƒ Array()
copyWithin: ƒ copyWithin()
entries: ƒ entries()
every: ƒ every()
fill: ƒ fill()
filter: ƒ filter()
find: ƒ find()
findIndex: ƒ findIndex()
flat: ƒ flat()
flatMap: ƒ flatMap()
forEach: ƒ forEach()
includes: ƒ includes()
indexOf: ƒ indexOf()
join: ƒ join()
keys: ƒ keys()
lastIndexOf: ƒ lastIndexOf()
length: 0
map: ƒ map()
pop: ƒ pop()
push: ƒ push()
reduce: ƒ reduce()
reduceRight: ƒ reduceRight()
reverse: ƒ reverse()
shift: ƒ shift()
slice: ƒ slice()
some: ƒ some()
sort: ƒ sort()
splice: ƒ splice()
toLocaleString: ƒ toLocaleString()
toString: ƒ toString()
unshift: ƒ unshift()
values: ƒ values()
Symbol(Symbol.iterator): ƒ values()
Symbol(Symbol.unscopables): {copyWithin: true, entries: true, fill: true, find: true, findIndex: true, …}
__proto__:                         //第二层原型
constructor: ƒ Object()
hasOwnProperty: ƒ hasOwnProperty()
isPrototypeOf: ƒ isPrototypeOf()
propertyIsEnumerable: ƒ propertyIsEnumerable()
toLocaleString: ƒ toLocaleString()
toString: ƒ toString()
valueOf: ƒ valueOf()
__defineGetter__: ƒ __defineGetter__()
__defineSetter__: ƒ __defineSetter__()
__lookupGetter__: ƒ __lookupGetter__()
__lookupSetter__: ƒ __lookupSetter__()
get __proto__: ƒ __proto__()
set __proto__: ƒ __proto__()
array = {0:'a',1:'b',2:'c',length:3}
{0: "a", 1: "b", 2: "c", length: 3}
0: "a"
1: "b"
2: "c"
length: 3
__proto__:
constructor: ƒ Object()
hasOwnProperty: ƒ hasOwnProperty()
isPrototypeOf: ƒ isPrototypeOf()
propertyIsEnumerable: ƒ propertyIsEnumerable()
toLocaleString: ƒ toLocaleString()
toString: ƒ toString()
valueOf: ƒ valueOf()
__defineGetter__: ƒ __defineGetter__()
__defineSetter__: ƒ __defineSetter__()
__lookupGetter__: ƒ __lookupGetter__()
__lookupSetter__: ƒ __lookupSetter__()
get __proto__: ƒ __proto__()
set __proto__: ƒ __proto__()

详细内容:

JavaScript中的伪数组和数组_jhkkk的博客-CSDN博客_伪数组​blog.csdn.net
752e89383a57b8eb03efccceca5c6f59.png

contact:连接两个数组,但是不改变两个数组

let arr3 = [3,3,3]
undefined
let arr4 = [4,4,4]
undefined
arr3.concat(arr4)
(6) [3, 3, 3, 4, 4, 4]
arr3
(3) [3, 3, 3]
arr4
(3) [4, 4, 4]

slice:切分两个数组但是不改变这两个数组

想要复制的方法就用

arr.slice(0)//注意,js只提供浅拷贝
let arr5 = [1,2,3,4,5,6,7,8,9]
undefined
arr5.slice(2)
(7) [3, 4, 5, 6, 7, 8, 9]
arr5
(9) [1, 2, 3, 4, 5, 6, 7, 8, 9]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/526867.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

node.js 实现udp传输_Node.js实战15:通过udp传输文件。

本文将要写一个udp服务器,和一个udp客户端,并实现客户端发送文件给服务器。服务器端代码如下:var dgram require("dgram");server();function server(){var socket dgram.createSocket("udp4");socket.on("messag…

mysql在单片机移植_移植MySQL到嵌入式ARM平台

因为MySQL5.5之后,编译是用的cmake不再使用./configure,因此,只好倒回支持./configure的版本来用,这里使用了文档上的5.1.51版本。进行如下步骤完成移植:1) 下载mysql5.1.51:http://www.mirrorservice.org/…

mysql镜像压缩包使用_如何连接docker的mysql镜像

展开全部推荐使用Dockerfile方式。服务的管理使用的是supervisord, 因为dockerfile里只会有一个cmd生效,如果我想62616964757a686964616fe58685e5aeb931333361326332通过ssh去管理容器还要有mysql服务的启动起来 cmd的方式就无法实现,当然容器不需要以sshd的方式去管…

mysql导出数据 程序_mysql导出数据

导出某库全表为SQL语句直接导出某库全表(包括表设计和表数据)为SQL语句mysqldump -h172.16.*.* -uroot -p somedatabase sometable > somewhere/table.sql导出某个表为特定文件格式导出某个表为特定文件格式(txt, xls)(只是数据)可以通过sql自行过滤某些数据mysql -h172.16.…

mysql通用日志不打印_解决logback不打印mybatis的SQL日志的问题

工作这么多年,今天还是因为Logback的这个问题稍微卡了一下,惭愧。问题描述:logback配置了如下信息:...此处省略File Appender内容${logbase}sql.%d{yyyy-MM-dd}.log30[%d{yyyy-MM-dd HH:mm:ss} [%t] [%X{traceId}] %5p %c:%L] %m%…

alibaba 实体转json_com.alibaba.fastjson 转换List Map等对象

原文:http://www.cnblogs.com/goody9807/p/4244862.html本文讲解2点:1. fastjson生成和解析json数据(举例:4种常用类型:JavaBean,List,List,List)2.通过一个android程序测试fastjson的用法。fastjson简介:Fastjson是一个Java语言编…

centos mysql rpm re_centos7和centos6.5环境rpm方式安装mysql5.7和mysql5.6详解

centos环境安装mysql5.7其实不建议安装mysql5.7 语法和配置可能和以前的版本区别较大,多坑,慎入1.yum方式安装(不推荐)a.安装mysql5.7 yum源centos6:wget dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpmyum localinstall mysql-community-…

mysql galera haproxy_安装配置Haproxy代理MySQL Galera集群

这篇文章,我讲介绍如何为MariaDB Galera 集群添加负载均衡,大致步骤如下:确认所有Galera节点作为一个单一集群运行(所有节点都是主节点而且相互同步)安装Haproxy(你可以安装到独立的服务器或者应用服务器)配置集群监控检测脚本,用…

nvme固态硬盘开机慢_为何我使用了固态硬盘开机速度还是需要20-30秒

1、加速网上邻居在Windows XP中访问网上邻居是相当恼人的,系统会搜索自己的共享目录和可作为网络共享的打印机以及计划任务中和网络相关的计划任务,然后才显示出来,显然这样速度就会比Windows 9x中慢很多。其实这些功能我们并没有使用上&…

高性能mysql看不懂_高性能mysql笔记1

转载请注明&#xff1a;TheViper http://www.cnblogs.com/TheViper<>这本书写的真的很好&#xff0c;只可惜本屌不才&#xff0c;大部分都看不懂&#xff0c;暂且记下与mysql优化有关&#xff0c;对自己有用的东西。测试指标吞吐量吞吐量指的是单位时间内的事务处理数&am…

python 热词分析_Python笔记:热词分析2020-01-01

热词分析在公众趋势分析、舆情分析有很宽广的应用&#xff0c;我们来看看怎么从一个TXT文件中分析出文章的热词出来&#xff0c;我们采用流行的第三方“结巴”包来实现。首先安装第三方包(matplotlib&#xff0c;jieba&#xff0c;wordcloud&#xff0c;numpy)mmatplotlib主要来…

子进程会继承父进程的哪些内容_【学习教程】Node.js创建子进程方法

来源 | https://github.com/CommanderXL/biu-blog/issues/25exec其中exec可用于在指定的shell当中执行命令。不同参数间使用空格隔开&#xff0c;可用于复杂的命令。const { exec } require(child_process)exec(cat *.js bad_file | wc -l)exec方法用于异步创建一个新的子进程…

python元编程运用_Python 中的元编程

就像元数据是有关数据的数据一样&#xff0c;元编程就是编写用于操纵程序的某些程序。人们普遍认为&#xff0c;元程序就是生成其他程序的某些程序&#xff0c;但范式更加广泛。所有旨在自我读取、分析、转换或修改的程序都是元编程的范例。例如&#xff1a;领域特定语言 (DSL)…

wamp怎么安装mysql服务器_用wamp的mysq安装pythonmysql

(我不确定这是应该在这里问还是在苏。。但是看到this question就这样&#xff0c;我在这里要求它…)我在我的vista机器上安装了wamp(mysql-5.1.33)服务器&#xff0c;我正试图安装pythonmysql 1.2.3c1&#xff0c;以使用wamp提供的mysql版本。在起初&#xff0c;当我运行python…

mysql筛选两个表有相同项的数据库_用SQL查询两个表中相同的数据

展开全部 1、创建测试表; create table test_col_1(id number, var varchar2(200)); create table test_col_2(id number, var varchar2(200)); 2、插入测试数据, insert into test_col_1 select level*8, var||32313133353236313431303231363533e59b9ee7ad9431333431373839l…

MySQL建表添加乐观锁字段_Java秒杀系统优化-Redis缓存-分布式session-RabbitMQ异步下单-页面静态化...

Java秒杀系统优化-Redis缓存-分布式session-RabbitMQ异步下单-页面静态化项目介绍基于SpringBootMybatis搭建的秒杀系统&#xff0c;并且针对高并发场景进行了优化&#xff0c;保证线程安全的同时极大地提高了服务器的吞吐量&#xff0c;主要优化手段有页面静态化、Redis缓存(页…

叶金荣mysql教程_mysql优化--叶金荣老师讲座笔记

copy to tmp table执行ALTER TABLE修改表结构时建议&#xff1a;凌晨执行Copying to tmp table拷贝数据到内存中的临时表&#xff0c;常见于GROUP BY操作时建议&#xff1a;创建索引Copying to tmp table on disk临时结果集太大&#xff0c;内存中放不下&#xff0c;需要将内存…

mysql tpcc 测试结果分析_mysql 数据库TPCC测试

创建数据库tpcc&#xff0c;导入测试表格mysql -h 192.168.0.202 -P15002 -utest -ptest -e "drop database tpcc;"mysql -h 192.168.0.202 -P15002 -utest -ptest -e "create database tpcc;"mysql -h192.168.0.202 -P15002 -utest -ptest --databasetpcc…

mysql 变量生命周期_Go: 延长变量的生命周期

![Illustration created for “A Journey With Go”, made from the original Go Gopher, created by Renee French.](https://raw.githubusercontent.com/studygolang/gctt-images2/master/20191002-Go-Keeping-a-Variable-Alive/00.png)本文基于 Go 1.13。在 Go 中&#xff0…

python qqbot实现qq聊天机器人_Python QQBot库的QQ聊天机器人

本文实例为大家分享了Python QQBot库的QQ聊天机器人的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下1.安装pip install qqbot2.主动发出消息from qqbot import _bot as bot# 登录QQbot.Login([-q, 2816626661])buddy 获取指定名称/备注的好友group 获取群buddy bot…