JavaScript-11-Array基础
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JavaScript-11-Array基础,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4863字,纯文字阅读大概需要7分钟。
内容图文
![JavaScript-11-Array基础](/upload/InfoBanner/zyjiaocheng/734/2e5e04ce25d8454ab9a0bb371e4b24ff.jpg)
参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array
-
JavaScript 数组的长度和元素类型都是非固定的。因为数组的长度可随时改变,并且其数据在内存中也可以不连续,所以 JavaScript 数组不一定是密集型的,这取决于它的使用方式。
如果这些特性不适用于你的特定使用场景的话,可以考虑使用类型数组 TypedArray
-
数组元素可以看做是数组对象的属性,但不能 array.1
-
在 JavaScript 中,以数字开头的属性不能用点号引用,必须用方括号,即 renderer[‘3d’]
也可以将数组的索引用引号引起来,比如 years[2] 可以写成 years[‘2’]。 years[2] 中的 2 会被 JavaScript 解释器通过调用 toString 隐式转换成字符串。正因为这样,‘2’ 和 ‘02’ 在 years 中所引用的可能是不同位置上的元素。
-
使用一个合法的下标为数组元素赋值,并且该下标超出了当前数组的大小的时候,解释器会同时修改 length 的值:
fruits[5] = 'mango'; console.log(fruits[5]); // 'mango' console.log(Object.keys(fruits)); // ['0', '1', '2', '5'] console.log(fruits.length); // 6
也可以显式地给 length 赋一个更大的值:
fruits.length = 10; console.log(Object.keys(fruits)); // ['0', '1', '2', '5'] console.log(fruits.length); // 10~
而为 length 赋一个更小的值则会删掉一部分元素:
fruits.length = 2; console.log(Object.keys(fruits)); // ['0', '1'] console.log(fruits.length); // 2~
Array方法
```
console.log('**** 从类数组对象或者可迭代对象中创建一个新的数组实例 ****');
console.log(Array.from('foo'));
// expected output: Array ["f", "o", "o"]
console.log(Array.from([1, 2, 3], x => x + x));
// expected output: Array [2, 4, 6]
console.log('**** isArray():是否为数组 ****');
var isarr=[10,20,1,9,5,11];
console.log(Array.isArray(isarr));/* true */
console.log('**** 根据一组参数来创建新的数组实例,支持任意的参数数量和类型 ****');
Array.of(7); // [7]
Array.of(1, 2, 3); // [1, 2, 3]
Array(7); // [ , , , , , , ]
Array(1, 2, 3); // [1, 2, 3]~
```
Array实例基本方法
"use strict"
var arr=[10,20,30,40,50];
var arr1=arr.concat([1,2,3]);
console.log(arr1); /* [ 10, 20, 30, 40, 50, 1, 2, 3 ] */
var s=arr.join('-');
console.log(s); /* 10-20-30-40-50 */
var arr2=s.split('-')
console.log(arr2); /* [ '10', '20', '30', '40', '50' ] */
console.log(arr.pop()); /* 50 */
console.log(arr); /* [ 10, 20, 30, 40 ] */
console.log(arr.shift()); /* 10 */
console.log(arr); /* [ 20, 30, 40 ] */
console.log(arr.push(230)); /* 长度:4 */
console.log(arr); /* [ 20, 30, 40, 230 ] */
console.log(arr.unshift(190)); /* 长度:5 */
console.log(arr); /* [ 190, 20, 30, 40, 230 ] */
console.log(arr.reverse()); /* [ 230, 40, 30, 20, 190 ] */
console.log(arr); /* [ 230, 40, 30, 20, 190 ] */
/* sort():默认以字符串顺序排的 */
console.log(arr.sort()); /* [ 230, 40, 30, 20, 190 ] */
console.log(arr); /* [ 230, 40, 30, 20, 190 ] */
console.log(arr.sort((a,b)=>a-b)); /* [ 20, 30, 40, 190, 230 ] */
console.log(arr); /* [ 20, 30, 40, 190, 230 ] */
console.log(arr.sort((a, b) => b - a)); /* [ 230, 190, 40, 30, 20 ] */
console.log(arr); /* [ 230, 190, 40, 30, 20 ] */
console.log(arr.indexOf(20)); /* 4 */
/* 有则为索引,无则为 -1 */
console.log('**** 遍历数组 ****');
var fr=['Apple','Banana'];
fr.forEach((item,index,array)=>{
console.log(item,index);
});
/*v Apple 0
* Banana 1
* */
fr.forEach(console.log);
/*
* Apple 0 [ 'Apple', 'Banana' ]
* Banana 1 [ 'Apple', 'Banana' ]
* */
console.log('**** every:每一个都符合为true ****');
var arr=[10,20,1,9,5,11];
var res=arr.every(item=>{return item>=11;});
console.log(res);/* false */
console.log('**** some:有一个符合为true ****');
var arr2=[10,20,1,9,5,11];
var res2=arr2.some(item=>{return item>=11;});
console.log(res2);/* true */
console.log('**** filter:过滤,符合的选出来 ****');
var arr3=[10,20,1,9,5,11];
var res3=arr3.filter(item=>{return item>=11;});
console.log(res3);/* [ 20, 11 ] */
console.log('**** map:遍历,操作后的取出 ****');
var arr4=[10,20,1,9,5,11];
var res4=arr4.map(item=>{return item*2;});
console.log(res4);/* [ 20, 40, 2, 18, 10, 22 ] */
var fr=['Apple','Banana','ml'];
var frr=fr.map(item=>item.length>3?item.substr(0,3)+'...':item);
console.log(frr);/* [ 'App...', 'Ban...', 'ml' ] */
console.log('**** reduce:每次遍历取两个,输出1个给下次取的item1 ****');
var arr5=[10,20,1,9,5,11];
var res5=arr5.reduce((item1,item2)=>{return item1+item2;});
console.log(res5);/* 56 */
console.log('**** 字符串反转 ****');
var s='hellojavastring';
console.log([...s].reverse().join('')); /* gnirtsavajolleh */
var sarrr=[...s].reduce((item1,item2)=>item2+item1);
console.log(sarrr); /* gnirtsavajolleh */
console.log('********散列、扩展语句********');
var parts=['shoulder','knees'];
var lyrics=['head',...parts,'and','toes'];
console.log(lyrics); /* [ 'head', 'shoulder', 'knees', 'and', 'toes' ] */
function f(x,y,z) {
console.log(x+y+z);
}
var args=[6,1,2,3,4];
f(...args); /* 9 */
console.log('********散列、扩展语句********');
console.log('********聚合、不定长参数********');
function f(x,y,...z) {
console.log(z);
}
f(1,2,3,4,5);
console.log('********聚合、不定长参数********');~
内容总结
以上是互联网集市为您收集整理的JavaScript-11-Array基础全部内容,希望文章能够帮你解决JavaScript-11-Array基础所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。