前端常見(jiàn)的js數(shù)組操作面試題集合
一、按要求分割數(shù)組
//實(shí)例: 將 “劉備彼念,張飛风科,關(guān)羽” 一個(gè)字符串?dāng)?shù)組以“|”分割的形式,輸出為 “劉備|張飛|關(guān)羽”? ? 注:使用兩種方式實(shí)現(xiàn)
(1) for循環(huán)累加方法
var arr1 = ["劉備","張飛","關(guān)羽"];
var separator = "|";
//通過(guò)for循環(huán)累加
var str = arr1[0];
for(var i=1;i<arr1.length;i++){
? str += separator+arr1[i];
}
console.log(str); //返回值為: 劉備|張飛|關(guān)羽
(2) join()可以把數(shù)組中的元素鏈接成字符串
var arr2 = ["劉備","張飛","關(guān)羽"];
console.log(arr2.join("|")); // 返回值為: 劉備|張飛|關(guān)羽
二、反向輸出數(shù)組
//實(shí)例: 將一個(gè)字符串?dāng)?shù)組 ["a", "b", "c", "d"] 反轉(zhuǎn)為 [ "d","c","b","a"]? ? 注:使用兩種種方式實(shí)現(xiàn)
(1) 直接使用 reverse()數(shù)組函數(shù)
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"]
三、去掉數(shù)組中不符合要求的元素
//實(shí)例: 在工資數(shù)組 [1500, 1200, 2000, 2100, 1800] ,把工資超過(guò)2000的刪除 輸出新數(shù)組
var arr = [1500, 1200, 2000, 2100, 1800];
//步驟: 1.利用filter()形成一個(gè)數(shù)組;2.return true;3.組成的數(shù)組;
var newArr = arr.filter(function (ele, i, array) {
//2000以上返回false;
if(ele<2000){
return true;
}else{
return false;
}
});
console.log(newArr); // 返回值為: [1500, 1200, 1800]
四页畦、找到某個(gè)元素在數(shù)組中的下標(biāo)值
//實(shí)例: 在數(shù)組中["c", "a", "z", "a", "x", "a"]找到數(shù)組中每一個(gè)“a”元素出現(xiàn)的位置
var arr = ["c", "a", "z", "a", "x", "a"];
//遍歷數(shù)組(for/while/do...while)? forEach();
arr.forEach(function (ele, index, array) {
//如果元素等于“a”胖替,那么就輸出索引值;
if("a" === ele){
console.log(index);? // 返回值:? 1? 3? 5
}
});
五豫缨、數(shù)組去重
//實(shí)例: 編寫(xiě)一個(gè)方法去掉一個(gè)數(shù)組的重復(fù)元素
var arr = ["鳴人","小櫻","佐助","佐助","鳴人","小櫻"];
//思路:1.定義一個(gè)新數(shù)組独令,2.遍歷老數(shù)組,3.判斷好芭,如果新數(shù)組里面沒(méi)有老數(shù)組的元素就添加燃箭,否則就不添加
var newArr = [];
//遍歷老數(shù)組
arr.forEach( function (ele,index,array) {
? ? //檢測(cè)老數(shù)組中的元素,如果新數(shù)組中存在就不添加了舍败,不存在才添加;
? ? if( newArr.indexOf(ele) === -1){ //不存在就添加;(去新數(shù)組中查找元素索引值招狸,如果為-1就是沒(méi)有)
? ? ? newArr.push(ele);
? ? }
});
console.log(newArr); // 返回值為: ["鳴人", "佐助", "小櫻"]