JavaScript相关文章

前端常见的js数组操作面试题集合

2019-04-19  本文已影响30人  Alexa_老王

前端常见的js数组操作面试题集合

一、按要求分割数组

//实例: 将 “刘备,张飞,关羽” 一个字符串数组以“|”分割的形式,输出为 “刘备|张飞|关羽”    注:使用两种方式实现

(1) for循环累加方法

var arr1 = ["刘备","张飞","关羽"];

var separator = "|";

//通过for循环累加

var str = arr1[0];

for(var i=1;i<arr1.length;i++){

  str += separator+arr1[i];

}

console.log(str); //返回值为: 刘备|张飞|关羽

(2) join()可以把数组中的元素链接成字符串

var arr2 = ["刘备","张飞","关羽"];

console.log(arr2.join("|")); // 返回值为: 刘备|张飞|关羽

二、反向输出数组

//实例: 将一个字符串数组 ["a", "b", "c", "d"] 反转为 [ "d","c","b","a"]    注:使用两种种方式实现

(1) 直接使用 reverse()数组函数

var arr1 = ["a", "b", "c", "d"];

console.log(arr1.reverse()); // 返回值为:["d", "c", "b", "a"]

(2)正向遍历,反向添加

var arr2 = ["a", "b", "c", "d"];

for(var i=0;i<arr2.length/2;i++){

var temp = arr2[i];

arr2[i] = arr2[arr2.length-1-i];

arr2[arr2.length-1-i] = temp;

}

console.log(arr2); // 返回值为:["d", "c", "b", "a"]

三、去掉数组中不符合要求的元素

//实例: 在工资数组 [1500, 1200, 2000, 2100, 1800] ,把工资超过2000的删除 输出新数组

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

//步骤: 1.利用filter()形成一个数组;2.return true;3.组成的数组;

var newArr = arr.filter(function (ele, i, array) {

//2000以上返回false;

if(ele<2000){

return true;

}else{

return false;

}

});

console.log(newArr); // 返回值为: [1500, 1200, 1800]

四、找到某个元素在数组中的下标值

//实例: 在数组中["c", "a", "z", "a", "x", "a"]找到数组中每一个“a”元素出现的位置

var arr = ["c", "a", "z", "a", "x", "a"];

//遍历数组(for/while/do...while)  forEach();

arr.forEach(function (ele, index, array) {

//如果元素等于“a”,那么就输出索引值;

if("a" === ele){

console.log(index);  // 返回值:  1  3  5

}

});

五、数组去重

//实例: 编写一个方法去掉一个数组的重复元素

var arr = ["鸣人","小樱","佐助","佐助","鸣人","小樱"];

//思路:1.定义一个新数组,2.遍历老数组,3.判断,如果新数组里面没有老数组的元素就添加,否则就不添加

var newArr = [];

//遍历老数组

arr.forEach( function (ele,index,array) {

    //检测老数组中的元素,如果新数组中存在就不添加了,不存在才添加;

    if( newArr.indexOf(ele) === -1){ //不存在就添加;(去新数组中查找元素索引值,如果为-1就是没有)

      newArr.push(ele);

    }

});

console.log(newArr); // 返回值为: ["鸣人", "佐助", "小樱"]

上一篇下一篇

猜你喜欢

热点阅读