javascript中array常用属性方法
length 表示一个无符号 32-bit 整数,返回一个数组中的元素个数。Array.from() 方法可以将一个类数组对象或可遍历对象转换成真正的数组。Array.of() 方法会将它的任意类型的多个参数放在一个数组里并返回。Array.of() 和 Array 构造函数不同的是:在处理数值类型的参数时,Array.of(42) 创建的数组只有一个元素,即 42, 但 Array(42) 创建了42个元素,每个元素都是undefined。示例
Array.of(1); // [1]
Array.of(1, 2, 3); // [1, 2, 3]
Array.of(undefined); // [undefined]copyWithin() 方法会浅拷贝数组的部分元素到同一数组的不同位置,且不改变数组的大小,返回该数组。every() 方法测试数组的所有元素是否都通过了指定函数的测试。arr.every(callback[, thisArg])
callback用来测试每个元素的函数。thisArg执行 callback 时使用的 this 值。callback 被调用时传入三个参数:元素值,元素的索引,原数组。检测所有数组元素的大小
下例检测数组中的所有元素是否都大于 10。
function isBigEnough(element, index, array) {
return (element >= 10);
}
var passed = [12, 5, 8, 130, 44].every(isBigEnough);
// passed is false
passed = [12, 54, 18, 130, 44].every(isBigEnough);
// passed is truefill() 方法,可以将一个数组中指定区间的所有元素的值, 都替换成或者说填充成为某个固定的值。参数
start, end) , 一个半开半闭区间.fill 方法接受三个参数 value, start 以及 end. start 和 end 参数是可选的, 其默认值分别为 0 和 this 对象的 length 属性值.start 是个负数, 则开始索引会被自动计算成为 length+start, 其中 length 是 this 对象的 length 属性值. 如果 end 是个负数, 则结束索引会被自动计算成为 length+end.示例
[1, 2, 3].fill(4) // [4, 4, 4]
[1, 2, 3].fill(4, 1) // [1, 4, 4]
[1, 2, 3].fill(4, 1, 2) // [1, 4, 3]
[1, 2, 3].fill(4, 1, 1) // [1, 2, 3]
[1, 2, 3].fill(4, -3, -2) // [4, 2, 3]
[1, 2, 3].fill(4, NaN, NaN) // [1, 2, 3]
Array(3).fill(4); // [4, 4, 4]filter() 方法使用指定的函数测试所有元素,并创建一个包含所有通过测试的元素的新数组。filter 不会改变原数组。callback用来测试数组的每个元素的函数。调用时使用参数 (element, index, array)。thisArg可选。执行 callback 时的用于 this 的值。
filter 为数组中的每个元素调用一次 callback 函数,并利用所有使得 callback 返回 true 或 等价于 true 的值 的元素创建一个新数组。callback 只会在已经赋值的索引上被调用,对于那些已经被删除或者从未被赋值的索引不会被调用。那些没有通过 callback 测试的元素会被跳过,不会被包含在新数组中。callback 被调用时传入三个参数:- 元素的值
- 元素的索引
- 被遍历的数组
filter 创建了一个新数组,该数组的元素由原数组中值大于 10 的元素组成。function isBigEnough(element) {
return element >= 10;
}
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered is [12, 130, 44]find() 方法就会返回那个元素的第一个值,如果没有满足条件的元素,则返回 undefined。find方法不会改变数组。callback 同上findIndex()方法用来查找数组中某指定元素的索引, 如果找不到指定的元素, 则返回 -1. (2015年的方法)forEach() 方法对数组的每个元素执行一次提供的函数(回调函数)。
语法
array.forEach(callback[, thisArg])
参数
callback函数为每个元素执行,接收三个参数:thisArg可选用作this的值(参考对象)。forEach 方法按升序为数组中含有效值的每一项执行一次callback 函数,那些已删除(使用delete方法等情况)或者从未赋值的项将被跳过(但不包括那些值为 undefined 的项)。callback 函数会被依次传入三个参数:- 数组当前项的值
- 数组当前项的索引
- 数组对象本身
如果给forEach传递了thisArg 参数,它将作为 callback 函数的执行上下文,类似执行如下函数callback.call(thisArg, element, index, array)。如果 thisArg 值为 undefined 或 null,函数的 this 值取决于当前执行环境是否为严格模式(严格模式下为 undefined,非严格模式下为全局对象)。
forEach 遍历的范围在第一次调用 callback 前就会确定。调用forEach 后添加到数组中的项不会被 callback 访问到。如果已经存在的值被改变,则传递给 callback 的值是 forEach 遍历到他们那一刻的值。已删除的项不会被遍历到。
Array.every 或 Array.some。forEach 为数组中的元素执行一次 callback 函数,不像 every 和 some,它总是返回 undefined。
下面的代码会为每一个数组元素输出一行记录:
function logArrayElements(element, index, array) {
console.log("a[" + index + "] = " + element);
}
[2, 5, 9].forEach(logArrayElements);
// logs:
// a[0] = 2
// a[1] = 5
// a[2] = 9
includes() 方法用来判断当前数组是否包含某指定的值,如果是,则返回 true,否则返回 false。searchElement需要查找的元素值。fromIndex可选参数。从该索引处开始查找 searchElement,默认为 0。Boolean。[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false
[1, 2, 3].includes(3, 3); // false
[1, 2, 3].includes(3, -1); // true
[1, 2, NaN].includes(NaN); // trueindexOf()方法返回给定元素能找在数组中找到的第一个索引值,否则返回-1join() 方法将数组中的所有元素连接成一个字符串。separator可选,用于指定连接每个数组元素的分隔符。分隔符会被转成字符串类型;如果省略的话,默认为一个逗号。如果 seprator 是一个空字符串,那么数组中的所有元素将被直接连接。var a = ['Wind', 'Rain', 'Fire'];
var myVar1 = a.join(); // myVar1的值变为"Wind,Rain,Fire"
var myVar2 = a.join(', '); // myVar2的值变为"Wind, Rain, Fire"
var myVar3 = a.join(' + '); // myVar3的值变为"Wind + Rain + Fire"
var myVar4 = a.join(''); // myVar4的值变为"WindRainFire"keys() 方法返回一个数组索引的迭代器。2015map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。map 不修改调用它的原数组本身下面的代码创建了一个新数组,值为原数组中对应数字的平方根。
var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
/* roots的值为[1, 2, 3], numbers的值仍为[1, 4, 9] */反转字符串
var str = '12345';
Array.prototype.map.call(str, function(x) {
return x;
}).reverse().join('');
// Output: '54321'
// Bonus: use '===' to test if original string was a palindrome
pop() 方法删除一个数组中的最后的一个元素,并且返回这个元素。push() 方法添加一个或多个元素到数组的末尾,并返回数组新的长度(length 属性值)。reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始合并,最终为一个值。reduceRight() 方法接受一个函数作为累加器(accumulator),让每个值(从右到左,亦即从尾到头)缩减为一个值。(与 reduce() 的执行方向相反)reverse() 方法颠倒数组中元素的位置。第一个元素会成为最后一个,最后一个会成为第一个。var myArray = ['one', 'two', 'three'];
myArray.reverse();
console.log(myArray) // ['three', 'two', 'one']
shift() 方法删除数组的 第一个 元素,并返回这个元素。该方法会改变数组的长度。slice() 方法会浅复制(shallow copy)数组的一部分到一个新的数组,并返回这个新数组。some() 方法测试数组中的某些元素是否通过了指定函数的测试。例子:测试数组元素的值
下面的例子检测在数组中是否有元素大于 10。
function isBigEnough(element, index, array) {
return (element >= 10);
}
var passed = [2, 5, 8, 1, 4].some(isBigEnough);
// passed is false
passed = [12, 5, 8, 1, 4].some(isBigEnough);
// passed is truesort() 方法对数组的元素做原地的排序,并返回这个数组。 sort 排序可能是不稳定的。默认按照字符串的Unicode码位点(code point)排序。如果没有指明 compareFunction ,那么元素会按照转换为的字符串的诸个字符的Unicode位点进行排序。例如 "Banana" 会被排列到 "cherry" 之前。数字比大小时,9 出现在 80 之前,但这里比较时数字会先被转换为字符串,所以 "80" 比 "9" 要靠前。
var fruit = ['cherries', 'apples', 'bananas'];
fruit.sort(); // ['apples', 'bananas', 'cherries']
var scores = [1, 10, 2, 21];
scores.sort(); // [1, 10, 2, 21]
// Watch out that 10 comes before 2,
// because '10' comes before '2' in Unicode code point order.
var things = ['word', 'Word', '1 Word', '2 Words'];
things.sort(); // ['1 Word', '2 Words', 'Word', 'word']
// In Unicode, numbers come before upper case letters,
// which come before lower case letters.
toLocaleString() 返回一个字符串表示数组中的元素。数组中的元素将使用各自的 toLocaleString 方法转成字符串,这些字符串将使用一个特定语言环境的字符串(例如一个逗号 ",")隔开。数组中的元素将会使用各自的 toLocaleString 方法:
toLocaleStringvar number = 1337;
var date = new Date();
var myArr = [number, date, "foo"];
var str = myArr.toLocaleString();
console.log(str);
// 输出 "1337,2015/2/27 下午8:29:04,foo"
// 假定运行在中文(zh-CN)环境,北京时区
toString() 返回一个字符串,表示指定的数组及其元素。Array 对象覆盖了 Object 的 toString 方法。对于数组对象,toString 方法返回一个字符串,该字符串由数组中的每个元素的 toString() 返回值经调用 join() 方法连接(由逗号隔开)组成。例如,下面的代码创建了一个数组,然后使用 toString 方法把该数组转成一个字符串。
var monthNames = ['Jan', 'Feb', 'Mar', 'Apr'];
var myVar = monthNames.toString(); // assigns "Jan,Feb,Mar,Apr" to myVar.unshift() 方法在数组的开头添加一个或者多个元素,并返回数组新的 length 值。values() 方法返回一个新的 Array Iterator 对象,该对象包含数组每个索引的值。javascript中array常用属性方法的更多相关文章
- JavaScript中Number常用属性和方法
title: JavaScript中Number常用属性和方法 toc: false date: 2018-10-13 12:31:42 Number.MAX_VALUE--1.79769313486 ...
- javascript中数组常用的方法和属性
前言 在javascript中,数组是一种非常重要的数据类型,我们时常会和它打交道,最近在开发项目中频繁的使用到数组,但是自己对数组的众多方法已经是非常模糊了,为了方便自己以后能够更好的使用数组中的属 ...
- javascript中数组常用的方法
在JavaScript中,数组可以使用Array构造函数来创建,或使用[]快速创建,这也是首选的方法.数组是继承自Object的原型,并且他对typeof没有特殊的返回值,他只返回'object'. ...
- 浅谈 JavaScript 中 Array 类型的方法使用
前言:Array 类型是 JavaScript 中除了 Object 类型以外最常用的类型. 一.创建数组 JavaScript 中的数组与其他语言中的数组有着很大的区别.例如Java.PHP等语言中 ...
- javascript中最常用的方法
平时在工作中时常需要一些方法,下面列举几个最常用的几个方法. 1. indexOf(searchvalue,fromindex) 该方法用于查找一个字符串是否包含了另一个字符串 indexOf() 方 ...
- JavaScript中Array数组的方法
查找: indexOf.lastIndexOf 迭代:every.filter.forEach.map.somereduce.reduceRight 用法: /* 1 查找方法: * arr.inde ...
- JavaScript中一些常用的方法整理
当前时间和输入时间比较 var timeLong = Date.parse(new Date());//当前时间var t1 = Date.parse($("#returnTime2&quo ...
- Javascript 中 Array的 sort()和 compare()方法
Javascript 中 Array的 sort()方法其实是把要排序的内容转化为string(调用 toString()), 然后按照字符串的第一位 ascii 码先后顺序进行比较,不是数字. 我们 ...
- Javascript中Array(数组)对象常用的几个方法
Javascript中Array数组的几个常用方法 pop() --获取数组中末尾的元素 shift() --获取数组中首位元素 push() --在数组中末尾增加元素 slice() --按照下 ...
随机推荐
- 史航416第九次作业&总结
一.知识点总结: 1.二维数组定义的形式:类型名 数组名[行长度] [列长度] 例如:int a[3][2]:定义一个二维数组a,3行2列,6个元素: 2.二维数组引用的形式:类型名 数组名[行下标] ...
- nullcon HackIM 2016 -- Crypto Question 4
He is influential, he is powerful. He is your next contact you can get you out of this situation. Yo ...
- Elasticsearch 字段数据类型
Elasticsearch 可以支持单个document中含有多个不同的数据类型. 核心数据类型(Core datatypes) 字符型(String datatype):string 数字型(Num ...
- SQL Server合并版本
1) 更新表(另一张表) a) 写法轻松,更新效率高: update table1 set field1=table2.field1,field2=table2.field2 from ...
- arduino编程语言Wiring参考手册API
对Arduino的编程是利用 Arduino编程语言 (基于 Wiring)和Arduino开发环境(based on Processing)来实现的. 通过编程,Arduino可以实现很多种功能. ...
- modelsim无法识别include文件的解决方法
modelsim发现include关联的文件编译报语法错误,文件名需要写绝对路径,即使这个文件和工程其它文件在一个目录上.例如只写成 `include "c0_ddr3_model_para ...
- 用CSS3在手机上写弹出框,遮盖层
html: 在页面头部要写 <title>网上预约</title> <link href="../App_Themes/default/css/header.c ...
- js 遇到问题
1)obj.style.attr 和obj.style[attr]区别: 2)window.onload一个页面只能出现一次: 3)border-radious实现 实心和空心圆 要点:宽度高度一样大 ...
- 16.10.16学到的JAVA知识
1. 每个字节就是八位,所以每个字节的取值范围是 -128~127,它可以保存一个英文字符,包括字母,数字和英文标点.而汉字的的数量很多,一个字节没法把所有的汉字表达出来,所以汉字就是用两个字节来存 ...
- C#实现简单的委托异步调用
delegate void textAsy(); static void Main(string[] args) { textAsy t = texts; AsyncCallback callBack ...