JavaScript数组操作编程题

这篇文章带大家复习一下使用JavaScript进行数组的基础操作,顺便带大家复习一遍JavaScript中对数组元素进行操作的方法。说到方法,想起自己做题时候,第一反应是先开个for循环遍历元素,然后再进行操作,完全忘了有那么多已经封装好的方法可以直接使用,简直傻到飞起。所以大家一定要熟悉这些常用方法呀。下面将一一说明。


查找数组元素位置

找出元素 item 在给定数组 arr 中的位置。如果数组中存在 item,则返回元素在数组中的位置,否则返回 -1。

function indexOf(arr, item){
    for(var i=0; i<arr.length; i++){
        if(arr[i] == item){
            return i;
        }
    }
    return -1;
}

数组求和

计算给定数组 arr 中所有元素的总和。输入描述:数组中的元素均为 Number 类型。如:输入例子:sum([ 1, 2, 3, 4 ]);输出例子:10。

常规循环

function sum(arr) {
    var sum = 0;
    for(var i=0; i<arr.length; i++){
       sum += arr[i];
    }
    return sum;
}

使用js中的eval() & join()函数

function sum(arr) {
    return eval(arr.join("+"));
};

这里需要掌握两个函数的用法:

  1. eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。语法:eval(string)。其中string是要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。返回值为计算值。提示:虽然 eval() 的功能非常强大,但在实际使用中用到它的情况并不多。
  2. join() 方法用于把数组中的所有元素放入一个字符串。语法:arrayObject.join(separator)。seperator可选参数。返回值是一个字符串。

使用forEach()函数

function sum(arr) {
    var s = 0;
    arr.forEach(function(val, arr) {
        s += val;
    }, 0);
    return s;
};

移除数组中的元素

移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组。

function remove(arr, item) {
    var newArray = [];
    for(var i=0; i<arr.length; i++){
        if(arr[i] != item){
            newArray.push(arr[i]);
        }
    }
    return newArray;
}

这道题重点是不能直接修改原数组,因此要创建一个新数组作为返回。这里记住push()函数的用法。该方法可向数组的末尾添加一个或多个元素,并返回新的长度。

又一道移除数组中的元素题

移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回。

function removeWithoutCopy(arr, item) {
    for(var i=0; i<arr.length; i++){
        if(arr[i] == item){
           arr.splice(i,1);
           i--;
        }
    }
    return arr;
}

这道题要求在原数组上进行操作。删除元素,可使用splice()函数。splice()方法向/从数组中添加/删除项目,然后返回被删除的项目。该方法会改变原始数组。P.S:几乎所有主流浏览器都支持splice()方法。

添加元素

在数组 arr 末尾添加元素 item。不要直接修改数组 arr,结果返回新的数组。

常规迭代拷贝

var append = function(arr, item) {
    var length = arr.length,
        newArr = [];
    for (var i = 0; i < length; i++) {
        newArr.push(arr[i]);
    }
    newArr.push(item);
    return newArr;
};

使用concat()方法

function append(arr, item) {
    var newArray = [];
    newArray = arr.concat(item);
    return newArray;
}

使用concat()传入的数组或非数组值与原数组合并,组成一个新的数组并返回。语法:arrayObject.concat(arrayX,arrayX,……,arrayX),其中arrayX是必需的,该参数可以是具体的值,也可以是数组对象。可以是任意多个。返回值:返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。

删除数组最后一个元素

删除数组 arr 最后一个元素。不要直接修改数组 arr,结果返回新的数组。

function truncate(arr) {
    var l = arr.length;
    return arr.slice(0,l-1);
}

记住一个slice() 方法,该方法可从已有的数组中返回选定的元素。语法arrayObject.slice(start,end)。其中,start必需,可为负;end可选。返回值返回一个新的数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。

添加元素

在数组 arr 开头添加元素 item。不要直接修改数组 arr,结果返回新的数组 。

function prepend(arr, item) {
    return [item].concat(arr);
}

删除数组第一个元素

删除数组 arr 第一个元素。不要直接修改数组 arr,结果返回新的数组。

function curtail(arr) {
    return arr.slice(1);
}

数组合并

合并数组 arr1 和数组 arr2。不要直接修改数组 arr,结果返回新的数组。

function concat(arr1, arr2) {
    return arr1.concat(arr2);
}

添加元素

在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回新的数组。

function insert(arr, item, index) {
    return arr.slice(0,index).concat(item, arr.slice(index));
}

计数

统计数组 arr 中值等于 item 的元素出现的次数。

function count(arr, item) {
    var num = 0;
    for(var i=0; i<arr.length; i++){
        if(arr[i] == item){
            num++;
        }
    }
    return num;
}

查找重复元素

找出数组 arr 中重复出现过的元素。

function duplicates(arr) {
    var final = [];
    for(var i=0; i<arr.length; i++){
        for(var j=i+1; j<arr.length; j++){
            if(arr[i] == arr[j] && final.indexOf(arr[i])== -1){
                final.push(arr[i]);
            }
        }
    }
    return final;
}

求二次方

为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组。

function square(arr) {
    var newArr = [];
    for(var i=0;i<arr.length;i++){
        newArr[i] = arr[i] * arr[i];
    }
    return newArr;
}

查找元素位置

在数组 arr 中,查找值与 item 相等的元素出现的所有位置。

function findAllOccurrences(arr, target) {
    var newArr = [];
    for(var i=0; i<arr.length; i++){
        if(arr[i] == target){
            newArr.push(i);
        }
    }
    return newArr;
}

总结

至此,js的数组操作复习告一段落。总结:Array对象方法见下图。

Array

希望这篇总结对你有所帮助。记得点赞。么么哒。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值