0

0

js能力测评经典题中分析数组类型的用法_附代码

php是最好的语言

php是最好的语言

发布时间:2018-07-26 11:39:45

|

1256人浏览过

|

来源于php中文网

原创

最近在做中的js能力测评经典题,因此按照自己的能力和想法进行了总结,此篇文章主要是数组类的总结。

1、找出元素item在给定数组中的位置:arr.indexof(item);

2、计算给定数组arr中所有元素的总和:arr.forEach(function(e){sum=sum+e;})


注:数组名.forEach(function(数组元素,元素索引,额外定义的数组){函数体}) //返回的仍是调用的数组

数组名.map(function(数组元素){函数体})  //返回的是新数组,它不修改调用的数组;

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

function remove(arr, item) {
    var newArray=[];
    arr.forEach(function(e){
        if(e!=item){
            newArray.push(e);
        }
    })
    return newArray;
}

4、移除数组arr中的所有与item相等的元素,直接在给定的数组上修改,并将结果返回。

//方法一:从前往后遍历删除元素
function removeWithoutCopy(arr,item){
    for(i=0;i=0;i--){
        if(item==arr[i]){
            arr.splice(i,1); //删除时无需进行位移
        }
    }
}

注:数组名.splice(索引[,个数,添加元素]),splice意味着直接在原有数组上进行修改,返回值为删除元素组成的数组。例:var  a=[1,2,3,4,5];a.splice(3,1)//返回[4],a为[1,2,3,5]

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

//方法一:直接使用数组的concat追加新的item,并返回新的数组
function append(arr, item) {
    return arr.concat(item);
}

//方法二:利用slice对原数组进行切分,产生新的数组,在对新数组进行push即可
function append(arr, item) {
    var newArray=arr.slice(0);
    newArray.push(item);
    return newArray;
}
//方法三:利用数组的map创建新的数组,最后对新数组push(item)即可
function append(arr, item) {
    var newArray=arr.map(function(e){
        return e;
    })
    newArray.push(item);
    return newArray;
}
//方法四:定义一个空数组,利用for/forEach进行赋值,再对新数组push(item)即可
function append(arr, item) {
    var newArray=[];
    arr.forEach(function(e){
        newArray.push(e);
    })
    newArray.push(item);
    return newArray;
}

6、删除数组arr最后一个元素,不要直接修改数组arr,结果返回新的数组:return arr.slice(0,arr.length-1);

7、在数组 arr 开头添加元素 item。不要直接修改数组 arr,结果返回新的数组:var newArray=arr.slice(0);newArray.unshift(item)

8、删除数组 arr 第一个元素。不要直接修改数组 arr,结果返回新的数组:return arr.slice(1);

9、合并数组 arr1 和数组 arr2。不要直接修改数组 arr,结果返回新的数组:return arr1.concat(arr2);

Axiom
Axiom

Axiom是一个浏览器扩展,用于自动化重复任务和web抓取。

下载

10、在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回新的数组:var newArray = arr.slice(0); newArray.splice(index,0,item); return newArray;

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

function count(arr, item) {
    var count=0;
    arr.forEach(function(e){
        if(e==item)
            count+=1;
    });
    return count;
}

12、找出数组 arr 中重复出现过的元素。输入:[1, 2, 4, 4, 3, 3, 1, 5, 3]。输出:[1, 3, 4]。

//方法一:利用indexOf和lastIndexOf进行判断
function duplicates(arr) {
    var result=[];
    arr.forEach(function(e){
        if(arr.indexOf(e)!=arr.lastIndexOf(e) && result.indexOf(e)==-1){
            result.push(e);
        }
    });
    return result;
}

//方法二:利用双重for循环进行判断
function duplicates(arr) {
    var result=[];
    for(i=0;i

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

//方法一:定义空数组,对arr进行遍历赋值
function square(arr) {
    var newArr=[];
    arr.forEach(function(e){
        newArr.push(e*e);
    });
    return newArr;
}
//方法二:直接使用map产生新的数组
function square(arr) {
    return arr.map(function(e){
        return e*e;
    })
}

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

function findAllOccurrences(arr, target) {
    var newArray=[];
    arr.forEach(function(e,i){
        if(e==target) newArray.push(i);
    })
    return newArray;
}

在js经典题中,以上便是所有数组的题型,接下来便是编码规范、函数模块。

相关推荐:

BootStrap经典案例分析

PHP字符串操作经典入门

视频教程:前端JS开发27个经典实战

相关专题

更多
C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

10

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

29

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

21

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

21

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

13

2026.01.22

PHP特殊符号教程合集
PHP特殊符号教程合集

本专题整合了PHP特殊符号相关处理方法,阅读专题下面的文章了解更多详细内容。

11

2026.01.22

PHP探针相关教程合集
PHP探针相关教程合集

本专题整合了PHP探针相关教程,阅读专题下面的文章了解更多详细内容。

8

2026.01.22

菜鸟裹裹入口以及教程汇总
菜鸟裹裹入口以及教程汇总

本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。

55

2026.01.22

Golang 性能分析与pprof调优实战
Golang 性能分析与pprof调优实战

本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

9

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
0基础快速上手自动化测试
0基础快速上手自动化测试

共8课时 | 0.4万人学习

thinkphp3.2实战开发企业网站
thinkphp3.2实战开发企业网站

共52课时 | 14万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号