Array对象的方法

 

Array.isArray(对象)---->判断这个对象是不是数组

instanceof关键字

判断对象是不是数组类型:两种方法:
    //1   instanceof
var obj = [];
console.log(obj instanceof Array);//ture //2 使用数组的
console.log(Array.isArray(obj));//ture

.concat(数组,数组,数组,...) 组合一个新的数组

    var arr1 = [10, 20, 30];
var arr2 = [40, 50, 60];
console.log(arr1.concat(arr2));

.every(函数)--返回值是布尔类型,函数作为参数使用,函数中有三个参数,第一个参数是元素的值,第二个参数是索引值,第三个参数是原来的数组(没用)

如果这个数组中的每个元素的值都符合条件,最后才返回的是true

    var arr = [1000, 2000, 3000];
//a----: 元素的值
//b----: 索引的值
//c----:谁调用了这个方法,那么c就是谁---->arr
var flag = arr.every(function (a, b) {
//console.log(a+"==="+b+"===="+c);
return a > 2000;//数组中的每个元素的值都要大于2000的情况,最后才返回true
});
    var arr = ["小明明lkko", "小曹操674", "小白白bd", "笑眯眯a"];
var flag = arr.every(function (ele, index) {
//数组中的每个元素的长度是不是大于4
return ele.length > 4;
}); console.log(flag);//false

.filter(函数);返回的是数组中每一个元素都符合条件的元素,组成了一个新的数组

    var arr = [10, 20, 30, 40, 50, 60, 70, 80];
var newArr = arr.filter(function (ele) {//ele---每个元素
return ele > 40;
});
console.log(newArr);
    var arr = [10, 0, 20, 0, 40, 0, 60, 100];
var newArr = arr.filter(function (ele) {
return ele != 0;
});
console.log(newArr);

.push(值);--->把值追加到数组中,加到最后了---返回值也是追加数据之后的数组长度

    var arr = [10, 20, 30, 40, 50];
var result = arr.push(100);
console.log(result);// 6 新数组的长度
console.log(arr);//[10, 20, 30, 40, 50, 100]

.pop();--->删除数组中最后一个元素, 返回值就是删除的这个值

    var arr = [10, 20, 30, 40, 50];
var result = arr.pop();
console.log(result); //
console.log(arr); //[10, 20,30, 40]

.shift();--->删除数组中第一个元素, 返回值就是删除的这个值

    var arr = [10, 20, 30, 40, 50];
var result = arr.shift();
console.log(result); //
console.log(arr);//[20, 30, 40, 50]

.unshift();--->向数组的第一个元素前面插入一个新的元素----返回值是插入后的程度

    var arr = [10, 20, 30, 40, 50];
var result = arr.unshift(100);//
console.log(result);
console.log(arr);

.forEach(函数)方法---遍历数组用---相当于for循环

    var arr = [10, 20, 30, 40];
arr.forEach(function (ele, index) {
console.log(ele + '======' + index);
});

.indexOf(元素值);返回的是索引,没有则是-1

    var arr = [10, 20, 30, 40];
var index = arr.indexOf(300);
console.log(index);

.join("字符串");----返回的是一个字符串

    var arr = ["小白", "小黑", "小红", "小芳", "小绿", "小苏"];
var str = arr.join("|");
console.log(str);

.map(函数);--->数组中的每个元素都要执行这个函数,把执行后的结果重新的全部的放在一个新的数组中

    var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
console.log(roots);

.reverse();----->反转数组

    var arr = [10, 20, 30, 40, 50];
arr.reverse();//反转
console.log(arr);

.sort();---排序的,可能不稳定,如果不稳定,请写MDN中的那个固定的代码

    var arr = [1, 40, 20, 10, 100];
//a---arr[j]
//b---arr[j+1]
arr.sort(function (a, b) {
if (a > b) {
return 1;
} else if (a == b) {
return 0;
} else {
return -1;
}
});
console.log(arr);

.arr.slice(开始的索引,结束的索引);把截取的数组的值放在一个新的数组中,但是不包含结束的索引对应的元素值

    var arr = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100];
var newArr = arr.slice(3, 7);
console.log(newArr);

.splice(开始的位置,要删除的个数,替换的元素的值);一般是用于删除数组中的元素,或者是替换元素,或者是插入元素

    var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];

    // myFish.splice(2, 0, 'drum'); // 在索引为2的位置插入'drum'

    // myFish 变为 ["angel", "clown", "drum", "mandarin", "sturgeon"]

    myFish.splice(2, 1); // 从索引为2的位置删除一项(也就是'drum'这一项)

    console.log(myFish);
// myFish 变为 ["angel", "clown", "mandarin", "sturgeon"]

加练习1:实例方法:通过实例对象调用的方法--->排序

//原来学的排序方法:

    var arr = [30, 48, 92, 50, 84, 72, 50];
for (var i = 0; i < arr.length - 1; i++) {
for (var j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}//end if
}//end for
}//end for
console.log(arr);
//对象,对象调用这个方法可以实现排序功能,和数组的sort方法功能一样
    var arr = [30, 48, 92, 50, 84, 72, 50];
function myArray() {
//实例方法:通过实例对象调用的方法--->排序
this.mySort = function (arr) {
for (var i = 0; i < arr.length - 1; i++) {
for (var j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
} //end if
} //end for
} //end for
};
}
//创建对象
var myArray = new myArray();
myArray.mySort(arr);
console.log(arr);

//数组sort方法排序

    var arr = [30, 48, 92, 50, 84, 72, 50];
//a---arr[j]
//b---arr[j+1]
arr.sort(function (a, b) {
if (a > b) {
return 1;
} else if (a == b) {
return 0;
} else {
return -1;
}
});
console.log(arr);

练习2:清空数组

    var arr = [10, 20, 30, 40, 50];
console.log(arr);
console.log(arr.length);
arr.length = 0;
console.log(arr);

练习3: 毫秒转日期

    var dt = new Date();
console.log(dt.valueOf()); var dt2 = new Date(dt.valueOf());//毫秒数转Date对象
console.log(dt2);

JS基础语法---Array对象的方法的更多相关文章

  1. JS基础语法---Date对象中常见的方法

    创建实例对象 var dt = new Date(); //当前的时间---当前的服务器 console.log(dt); var dt = new Date("2017-08-12&quo ...

  2. js基础复习~Array对象

    Array对象 lenght 获取到数组的长度 concat() 方法用于合并两个或多个数组.此方法不会更改两大有数组,而是返回一个新的数组 let arr1 = ["a",&qu ...

  3. JS基础语法---String对象下的方法(字符串的方法)

    实例方法---->必须要通过new的方式创建的对象(实例对象)来调用的方法 静态方法---->直接通过大写的构造函数的名字调用的方法(直接通过大写的对象名字调用的) 字符串的常用属性: . ...

  4. JS基础语法---Math对象的案例

    系统Max求最大值: var result= Math.max(10,20,30,40); console.log(result); 练习1:自己定义一个对象,实现系统的max的方法   //例子:自 ...

  5. JS基础语法----Math对象

        推荐查看MDN----在线的帮助文档 实例对象: 通过构造函数创建出来,实例化的对象 静态对象: 不需要创建,直接就是一个对象,方法(静态方法)直接通过这个对象名字调用 实例方法必须通过实例对 ...

  6. js中数组Array对象的方法sort()的应用

    一. sort()方法的介绍 //给一组数据排序 var arrNum = [12,1,9,23,56,100,88,66]; console.log("排序前的数组:"+arrN ...

  7. JS基础语法---String对象

    String---->是一个对象 字符串可以看成是字符组成的数组, 但是js中没有字符类型 字符是一个一个的, 在别的语言中字符用一对单引号括起来 在js中字符串可以使用单引号也可以使用双引号 ...

  8. JS基础语法---arguments对象伪数组

    引入: //计算两个数字的和 function f1(x, y) { return x + y; } //计算三个数字的和 function f2(x, y, z) { return x + y + ...

  9. JS基础语法---Date对象---格式化日期

    格式化后的指定格式的日期和时间,封装一个函数 function getDate() { var dt = new Date(); var year = dt.getFullYear(); var mo ...

随机推荐

  1. Web安全测试实战之测试HTTP方法

    一. Http方法测试 有些Web服务器默认情况下开放了一些不必要的HTTP方法(如DELETE.PUT.TRACE.MOVE.COPY),这样就增加了受攻击面. 测试方法: 1.打开webscara ...

  2. Selenium 4 Java的最佳测试框架

    几十年来,Java一直是开发应用程序服务器端的首选编程语言.尽管JUnit一直在与开发人员一起帮助他们进行自动化的单元测试,但随着时间的推移和测试行业的发展,特别是伴随着自动化测试的兴起,已经开发了许 ...

  3. 思科CISCO ASA 5521 防火墙 Ipsec 配置详解

    版本信息: Cisco Adaptive Security Appliance Software Version 9.9(2) Firepower Extensible Operating Syste ...

  4. 高质量iOS博客推荐

    https://www.jianshu.com/p/ea9fabdc12ed 原文地址 原作者记录了一些高质量ios博客地址,本文只做收藏使用.

  5. 移动开发在路上-- IOS移动开发系列 多线程二

    最近太忙没太多的时间,忙碌的码农生活空下来一点时间,都会挤出来看一些技术或者咨询的文章,废话不多说,直奔主题. 接着上一次的继续说. 定时器在多线程的使用 NSRunLoop 是线程相关的基础框架的一 ...

  6. [TimLinux] MySQL InnoDB的外键约束不支持set default引用选项

    1. 外键 MySQL的MyISAM是不支持外键的,InnoDB支持外键,外键是MySQL中的三大约束中的一类:主键约束(PRIMARY KEY),唯一性约束(UNIQUE),外键约束(FOREIGN ...

  7. CodeForces1006A - Adjacent Replacements

    A. Adjacent Replacements time limit per test 1 second memory limit per test 256 megabytes input stan ...

  8. flex布局中flex-grow与flex-shrink的计算方式

    CSS 中的 Flex(弹性布局) 可以很灵活的控制网页的布局,其中决定 Flex 布局内项目宽度/高度的是三个属性: flex-basis, flex-grow, flex-shrink. flex ...

  9. 【CuteJavaScript】ES2019 新特性汇总

    最近 ECMAScript2019,最新提案完成:tc39 Finished Proposals,我这里也是按照官方介绍的顺序进行整理,如有疑问,可以查看官方介绍啦~ 另外之前也整理了 <ES6 ...

  10. 【重温基础】16.JSON对象介绍

    本文是 重温基础 系列文章的第十六篇. 今日感受:静. 系列目录: [复习资料]ES6/ES7/ES8/ES9资料整理(个人整理) [重温基础]1-14篇 [重温基础]15.JS对象介绍 本章节复习的 ...