数组对象.

JavaScript 中的对象分为3种:

  • 自定义对象,var obj = {}
  • 内置对象, Math, Date,Array、String等
  • 浏览器对象 BOM

前面两种对象是JS 基础 内容,属于 ECMAScript;

第三个浏览器对象BOM Web API 讲解

创建数组的两种方式

① 字面量方式:

var arr = [1,"test",true];

②new Array() 方式 :(少用构造数组的方式创建数组!)

var arr = new Array();

注意:上面代码中arr创建出的是一个空数组,如果需要使用构造函数Array创建非空数组,可以在创建数组时传入参数

var arr2 = new Array(2)   //创建一个长度为2的数组,里面为empty [empty × 2]

console.log(arr2);

var arr3 = new Array(2,3) //创建一个数组===>[2,3]

console.log(arr3);

检测是否为数组

① instanceof 运算符

语法:A instanceof B : 判断A是否是B的一个实例(对象)

var arr = [1, 23];
var obj = {};
console.log(arr instanceof Array); // true,arr是不是Array的实例?是的
console.log(obj instanceof Array); // false,obj是不是Array的实例?不是

 ② Array.isArray()

var arr = [1, 23];
var obj = {};
console.log(Array.isArray(arr));   // true
console.log(Array.isArray(obj));   // false

 instanceof 和 typeof 区别

  • typeof用于检查数据是否为简单数据类型和object(没有办法检测object的具体分类)
  • instanceof 用于没某个对象是否为某个类发实例(某个构造函数创建出来的),用于检测具体是哪一类对象:object, Array

③Object.prototype.toString.call(data)

var arr = [1,2,3] var obj = {}

var fn = function(){}

var str = '123'

var num = 123

var bool = true

var a = undefined

var b = null

console.log(Object.prototype.toString.call(arr))    // [object Array] console.log(Object.prototype.toString.call(obj))   // [object Object] console.log(Object.prototype.toString.call(fn))     // [object Function] console.log(Object.prototype.toString.call(str))    // [object String] console.log(Object.prototype.toString.call(num))  // [object Number] console.log(Object.prototype.toString.call(bool))  // [object Boolean] console.log(Object.prototype.toString.call(a))      // [object Undefined] console.log(Object.prototype.toString.call(b))       // [object Null]

添加删除数组元素的方法

案例--筛选数组

有一个包含工资的数组[1500, 1200, 2000, 2100, 1800],要求把数组中工资超过2000的删除,剩余的放到新数组里面

var arr= [1500, 1200, 2000, 2100, 1800]

        var newArr = [ ]

        for (var i = 0; i < arr,length; i++) {

            if (arr[ i ] < 2000) {

                newArr.push( arr[ i ] )

            }

        }

        console.log(newArr)

 数组排序

// 数组排序
// 1. 翻转数组
var arr = ['pink', 'red', 'blue'];
arr.reverse();
console.log(arr);

// 2. 数组排序(冒泡排序)
//注意:sort方法需要传入参数来设置升序、降序排序 (sort排序用减号,a前b后是升序,a后b前是降序)
//如果传入“function(a,b){ return a-b;}”,则为升序
//如果传入“function(a,b){ return b-a;}”,则为降序
var arr1 = [13, 4, 77, 1, 7];
arr1.sort(function(a, b) {
    //  return a - b; 升序的顺序排列
    return b - a; // 降序的顺序排列
});

 新增写法:

 arr1.sort( ( a, b) =>  a - b )

数组索引方法

// var arr = ['red', 'green', 'blue', 'pink', 'blue'];
var arr = ['red', 'green', 'pink'];
console.log(arr.indexOf('blue'));
console.log(arr.indexOf('yellow'));

// 返回数组元素索引号方法  lastIndexOf(数组元素)  作用就是返回该数组元素的索引号 从后面开始查找
var arr = ['red', 'green', 'blue', 'pink', 'blue'];
console.log(arr.lastIndexOf('blue')); // 4

 案例: 数组去重

目标: 把旧数组里不重复的元素选取出来放到新数组中, 重复的元素只保留一个到新数组中

arr = [1, 3, 5, 7, 9, 3, 1, 2, 5, 4, 7, 8, 9, 4]

 

 var arr = [1, 3, 5, 7, 9, 3, 1, 2, 5, 4, 7, 8, 9, 4]

        var newArr = [ ]

        for (var i = 0; i < arr.length; i++) {

            if (arr[ i ] !==  -1) {

                newArr.push(arr[ i ])

            }

        }

        console.log(newArr);

数组转换为字符串

 

// 数组转换为字符串 
// 1. toString() 将我们的数组转换为字符串
var arr = [1, 2, 3];
console.log(arr.toString()); // 1,2,3

// 2. join(分隔符) 
var arr1 = ['green', 'blue', 'pink'];
console.log(arr1.join()); // green,blue,pink (如果不指定分隔符,那么与toString一致,以逗号分隔)
console.log(arr1.join('-')); // green-blue-pink
console.log(arr1.join('&')); // green&blue&pink

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值