python 下载视频/文件 实时显示进度

数组是对象

数组是一种特殊类型的对象,在 JavaScript 中对数组使用 typeof 运算符会返回 “object”。
数组使用数字来访问其“元素”,对象使用名称来访问其“成员”(数组使用数字索引,对象使用命名索引,数组是特殊类型的对象,具有数字索引)。

数组元素也可以是对象

JavaScript 变量可以是对象,数组是特殊类型的对象。
正因如此,可以在相同数组中存放不同类型的变量。
可以在数组保存对象,可以在数组中保存函数,甚至可以在数组中保存数组。

数组方法

把数组转换为字符串:

toString() 把数组转换为数组值(逗号分隔)的字符串
join() 方法也可将所有数组元素结合为一个字符串,可以规定分隔符

let arr = [1, 2, 3, 4, 5, '春天'];
console.log(arr.toString()); // 将数组转化为字符串 1, 2, 3, 4, 5, 春天
console.log(arr.join()); // 将数组转化为字符串 1, 2, 3, 4, 5, 春天
console.log(arr.join(' ')); // 空格分隔 1 2 3 4 5 春天
console.log(arr.join('*')); // *分隔 1*2*3*4*5*春天

popping和pushing:

pop() 方法从数组中删除最后一个元素,返回’被弹出’的值
push() 方法(在数组结尾处)向数组添加一个新的元素,push() 方法返回新数组的长度

let arr = [1, 2, 3, 4, 5, '春天'];
var x = arr.pop() // 数组删除最后变成[1, 2, 3, 4, 5], x的值'春天'
var y = arr.push('夏天') // 数组结尾添加一个变成[1, 2, 3, 4, 5, '春天', '夏天'], y的值'夏天'

移位元素:

shift() 方法会删除首个数组元素,并把所有其他元素“位移”到更低的索引。
unshift() 方法(在开头)向数组添加新元素,并“反向位移”旧元素,返回数组的长度。

let arr = [1, 2, 3, 4, 5, '春天'];
var x = arr.shift() // 数组删除首个变成[ 2, 3, 4, 5, '春天'], x的值1
var y = arr.push('夏天') // 数组开头添加一个变成['夏天', 1, 2, 3, 4, 5, '春天']

更改元素:

通过数组索引号来访问数组元素
arr[0] 访问第一个数组元素
arr.length 属性返回数组的长度(数组元素的数目)
arr[Arr.length - 1] 访问最后一个数组元素
length属性提供向数组追加新元素的简易方法
arr[arr.length] = “秋天” // 向arr追加“秋天”

识别数组:

运算符typeof返回object
1、ECMAScript 5 定义了新方法 Array.isArray()

Array.isArray(arr); // 返回 true

2、创建自己的 isArray() 函数以解决此问题

function isArray(x) {
	return x.constructor.toString().indexOf("Array") > -1;
}

删除元素:

delete运算符来删除

delete arr[0] // 把arr中的首个元素改成undefined

使用delete会在数组留下未定义的空洞,请使用pop()和shift()取而代之

拼接数组:

**splice()**方法可用于向数组添加新项,splice() 方法返回一个包含已删除项的数组

let arr = [1, 2, 3, 4, 5, '春天'];

arr.splice(2, 0, “Lemon”, “Kiwi”)
第一个参数(2)定义了应添加新元素的位置(拼接)。
第二个参数(0)定义应删除多少元素。
其余参数(“Lemon”,“Kiwi”)定义要添加的新元素。
使用splice()来删除运算
arr.splice(0, 1) // 删除arr中的第一个元素
第一个参数(0)定义新元素应该被添加(接入)的位置。
第二个参数(1)定义应该删除多个元素。
其余参数被省略。没有新元素将被添加。

合并(连接)数组:

concat() 方法通过合并(连接)现有数组来创建一个新数组

let arr1 = [1, 2, 3, 4, 5];
let arr2 = ['春天', '夏天', '秋天', '冬天']
var arr = arr1.concat(arr2)  // 连接arr1和arr2,合并两个参数
console.log(arr) // [1, 2, 3, 4, 5, '春天', '夏天', '秋天', '冬天']

concat()方法不会更改现有的数组,它总是返回一个新数组
concat()方法可以使用任意数量的数组参数

var arr = arr1.concat(arr2, arr3) // 连接arr1、arr2和arr3

concat()方法也可以将值作为参数

var arr = arr1.concat(['苹果', '草莓']) // 连接arr1和'苹果' ’草莓‘

裁剪数组:

slice() 方法用数组的某个片段切出新数组
slice() 方法创建新数组,它不会从原数组中删除任何元素

var arr1 = ["aa", "bb", "cc", "dd"]
var arr2 = arr1.slice(2)  // arr2 = ["cc", "dd"]

slice()可接受两个参数,比如(1, 3)

var arr1 = ["aa", "bb", "cc", "dd", "ee"]
var arr2 = arr1.slice(1, 3)  // arr2 = ["bb", "cc"]

如果结束参数被省略,slice()会切出数组的剩余部分

数组排序:

sort() 方法以字母顺序对数组进行排序
reverse() 方法反转数组中的元素
sort() 函数按照字符串顺序对值进行排序,不过在对数值排序时会产生不正确结果
var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a - b});
通过比值函数修正问题

比值函数:

比较函数应该返回一个负、零、或者正值
function(a, b){return a-b}
当 sort() 函数比较两个值时,会将值发送到比较函数,并根据所返回的值(负、零或正值)对这些值进行排序。

以随机顺序排序数组
arr.sort(function(a, b){return 0.5 - Math.random()})

查找最高(或最低)的数组值
1、对数组进行排序之后,可以使用索引来获得最高或最低值
sort通过比值函数排序后取第一个值
2、对数组使用Math.max(),查找数组中最大值

3、Math.min(),查找数组中的最低值

排序对象数组
即使对象拥有不同数据类型的属性,sort()方法仍可用于对数组进行排序
var cars = [
{type:“Volvo”, year:2016},
{type:“Saab”, year:2001},
{type:“BMW”, year:2010}];
cars.sort(function(a, b){return a.year - b.year});
cars.sort(function(a, b){
var x = a.type.toLowerCase();
var y = b.type.toLowerCase();
if (x < y) {return -1;}
if (x > y) {return 1;}
return 0;
});

数组迭代
Array.forEach()
forEach()方法为每个数组元素调用一次函数(回调函数)

Array.map()
map()方法通过对每个数组元素执行函数来创建新数组
map() 方法不会对没有值的数组元素执行函数。
map() 方法不会更改原始数组。

Array.filter()
filter() 方法创建一个包含通过测试的数组元素的新数组

Array.reduce()
reduce() 方法在每个数组元素上运行函数,以生成(减少它)单个值。
reduce() 方法在数组中从左到右工作。另请参阅 reduceRight()。
reduce() 方法不会减少原始数组。四个参数(total, value, index, array)

Array.reduceRight()
reduceRight() 方法在每个数组元素上运行函数,以生成(减少它)单个值。
reduceRight() 方法在数组中从右到左工作。另请参阅 reduce()。
reduceRight() 方法不会减少原始数组。

Array.every()
every()方法检查所有数组值是否通过测试

Array.some()
some()方法检查某些数组值是否通过了测试

Array.indexOf()
indexOf()方法在数组中搜索元素值并返回其位置

Array.lastIndexOf()
Array.lastIndexOf()与Array.indexOf()类似,但是从数组结尾开始搜索

Array.find()
find()方法返回通过测试函数的第一个数组元素的值

Array.findIndex()
findIndex() 方法返回通过测试函数的第一个数组元素的索引

数组
const
用const声明的数组不能重新赋值
数组不是常量
关键字const有一定误导性
他不定义常量数组,它定义的是对数组的常量引用
因此,我们仍然可以更改常量数组的元素
元素可以重新赋值,可以更改常量数组的元素

猜你喜欢

转载自blog.csdn.net/weixin_38819889/article/details/124853178
今日推荐