数组的创建、数组部分API以及练习

文章详细介绍了JavaScript中的数组,包括如何使用数组字面量和Array构造函数创建数组,以及数组的length属性。重点讲解了pop()和push()方法,并提供了这两个方法的重构练习。此外,还提到了数组原型对象的概念。最后,文章给出了几个编程练习,如寻找数组中和为目标值的元素下标,以及重构pop和push方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

数组

数组的创建

使用数组字面量

使用Array构造函数创建数组

数组部分API

从末尾开始删除数组元素       pop()

 从末尾增加数组元素        push()

相关练习:

1.给定一个数组nums=[2,5,7,11],要求任意两个数组元素和等于指定的值target=9;并返回他们下标,return[0,2]

 2.重构pop方法,要求实现和pop一样的效果

 3.重构push方法,要求实现和push一样的效果


数组

ECMAScript数组是有序列表,是存放多个值的集合。 有以下特性: 每一项都可以保存任何类型的数据。 数组的大小是可以动态调整。 数组的length属性:可读可写,可以通过设置length的值从数组的末尾移除项或向数组中添加新项

js中的数组是可以存放任意数据类型值的集合,数组的元素可以是任意数据类型,数组的长度可以动态调整。

数组的创建

使用数组字面量

var arr = [1,2,3,4,5];
console.log(arr[3],arr[arr.length-1]);
console.log(arr[6]);
arr[10] = 'hello';
console.log(arr,arr.length);

使用Array构造函数创建数组

/**
 * 2.使用构造函数创建数组
 *  1.如果在Array中放入的是一个number整数,则表示数组长度, 
 *    如果是number小数部分不为0则报错, 
 *    如果是其他数据类型,表示数组元素
 */
var arr1 = new Array();
console.log(arr1);  //[]
var arr1 = new Array(10);
console.log(arr1,arr1.length);
var arr1 = new Array(10.0);
console.log(arr1,arr1.length);
var arr1 = new Array('10.2');
console.log(arr1,arr1.length);

和前面所学过的Object原型一样,详情JS原型的介绍、数据属性和访问器属性定义方法以及对象序列化_学前端的狗头苏丹的博客-优快云博客,Array也有原型对象。

console.log(Array,'数组构造函数');
console.log(Array.prototype,'数组原型对象');
console.log(Array.prototype.constructor === Array,'原型对象通过指针指向构造函数');
// 每一个实例都有一个指针指向原型对象
console.log(arr.__proto__ === Array.prototype,'每一个实例都有一个指针指向原型对象');

数组部分API

从末尾开始删除数组元素       pop()

方法:pop()    参数:无     返回值:删除的元素   修不修改原数组:修改

var arr = [1,2,3,4,5];
console.log(arr.pop(),'返回值');
console.log(arr,'');
console.log(arr.__proto__.pop() === Array.prototype.pop());

 从末尾增加数组元素        push()

方法:push()  参数:想要添加的数组元素 返回值:返回新数组的长度  修不修改原数组:修改

var res = arr.push('tom','lerry');
console.log(res,arr);

相关练习:

1.给定一个数组nums=[2,5,7,11],要求任意两个数组元素和等于指定的值target=9;并返回他们下标,return[0,2]

// 1.给定一个数组nums=[2,5,7,11],要求任意两个数组元素和等于指定的值target=9;并返回他们下标,return[0,2]
var nums = [2, 5, 7, 11];
var target = 9;
// 直接输出
for (var i = 0; i < nums.length; i++) {
    for (var j = i + 1; j < nums.length; j++) {
        if (nums[i] + nums[j] == target) {
            var index = [i, j];
            console.log(index);
        }
    }
}
// 调用函数
function result(arr) {
    for (var i = 0; i < arr.length; i++) {
        for (var j = i + 1; j < arr.length; j++) {
            if (arr[i] + arr[j] == target) {
                return [i, j]
            }
        }
    }
}
console.log(result(nums));

效果:

 2.重构pop方法,要求实现和pop一样的效果

// 2.重构pop方法,要求实现和pop一样的效果
var arr1 = [1, 2, 3, 4, 5];
// 原型对象的方法
// arr1.pop();
console.log(arr1.pop(), '返回值');
console.log(arr1);
// 重构pop
Array.prototype.myPop = function () {
    if(this.length<1){
        var rm = this[this.length - 1];
        // 直接减少长度
        this.length--;
        // 返回删除值
        return rm;
    }else{
        // 数组为空
        return undefined;
    }
}
console.log(arr1.myPop(), '返回值');
// arr1.myPop();
console.log(arr1);

 3.重构push方法,要求实现和push一样的效果

// 3.重构push方法,要求实现和push一样的效果
var arr2 = [1, 2, 3, 4, 5, 6];
// 原型对象的方法
// arr2.push(7,8);
console.log(arr2.push(7, 8));
console.log(arr2);
// 重构push
Array.prototype.myPush = function () {
    // 函数内部属性 arguments 专门保存实际参数的类数组对象
    // arguements传递实参,即使没有形参也可以传递
    // 遍历调用myPush的实际参数 把实际参数放在数组的末尾下一项
    for (i = 0; i < arguments.length; i++) {
        this[this.length] = arguments[i];
    }
    var add = this.length;
    return add;
}
console.log(arr2.myPush(9, 10));
console.log(arr2);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学前端的狗头苏丹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值