个人博客已上线,欢迎前去访问评论!
无媛无故 - wangchloe的个人博客
以下内容若有问题烦请即时告知我予以修改,以免误导更多人。
1. 数组翻转方法2
eg: 这里说明一下,这个方法用的不是reverse,因为一次面试中被问过不用reverse实现翻转,所以这里标注为数组的翻转方法2。
<script>
var arr=[1,2,3,4];
var arr2=[];
while(arr.length) {
var num=arr.pop();
arr2.push(num);
}
alert(arr2);
</script>
2. 首字母大写
eg:
<script>
var str = 'welcome to china';
var arr = str.split(' ');
var arr2 = [];
for(var i = 0; i < arr.length; i++) {
var first = arr[i].charAt(0).toUpperCase();
var other = arr[i].substring(1);
arr2.push(first + other);
}
alert(arr2.join(' '));
//正则写法
var str2 = str.replace(/\w+/g, function(s) {
return s.charAt(0).toUpperCase().substring();
})
alert(str2);
</script>
3.快速清空数组
- length=0;
- arr=[];
- arr.splice(0,arr.length);
- 循环pop或shift
4. 数组排序方法
更多方法见后续排序算法篇
<script>
function findMinIndex(arr, start) {
var iMin = arr[start];
var iMinIndex = start;
for(var i = start + 1; i < arr.length; i++) {
if(iMin > arr[i]) {
iMin = arr[i];
iMinIndex = i;
}
}
return iMinIndex;
}
for(var i = 0; i < arr.length; i++) {
var iMinIndex = findMinIndex(arr, i);
var temp;
temp = arr[iMinIndex];
arr[iMinIndex] = arr[i];
arr[i] = temp;
}
</script>
5. 数组内查找元素是否存在
<script>
function findInArr(item, arr) {
for(var i = 0; i < arr.length; i++) {
if(item == arr[i]) {
return true;
} else {
return false;
}
}
}
</script>
6. 数组去重的多种方法
(1)findInArr
<script>
var arr2 = [];
for(var i = 0; i < arr.length; i++) {
if(!findInArr(arr[i], arr2)) {
arr2.push(arr[i]);
}
}
// 数组内查找元素是否存在
function findInArr(item, arr) {
for(var i = 0; i < arr.length; i++) {
if(item == arr[i]) {
return true;
} else {
return false;
}
}
}
</script>
(2)json(自动从小到大排序)
<script>
var json = {};
var arr2 = [];
for(var i = 0; i < arr.length; i++) {
json[arr[i]] = 'xxx';
}
for(var name in json) {
arr2.push(name);
}
</script>
(3)sort()
<script>
arr.sort();
for(var i = 0; i < arr.length; i++) {
if(arr[i] == arr[i+1]) {
arr.splice(i, 1);
i--;
}
}
</script>
(4) indexOf
这个方法是在前端公众号偶然看到的,数组的indexOf方法第一次用到
<script>
for(var i = 0; i < arr.length; i++) {
if(arr2.indexOf(arr[i]) < 0) {
arr2.push(arr[i]);
}
}
</script>
(5)二分法
<script>
var arr = [1, 2, 3, 2, 4, 3, 1, 5, 7, 2, 5];
// 数组内查找元素是否存在
function findInArr(item, arr) {
for(var i = 0; i < arr.length; i++) {
if(item == arr[i]) {
return true;
}
}
return false;
}
function del(arr, s, e) {
if(s > e) {
return [];
} else if(s == e) {
return [arr[s]];
}
var c = Math.floor((s + e) / 2);
var l = del(arr, s, c);
var r = del(arr, c + 1, e);
for(var i = 0; i < r.length; i++) {
if(!findInArr(r[i], l)) {
l.push(r[i]);
}
}
return l;
}
console.log(del(arr, 0 , arr.length - 1));
</script>
更多内容可以订阅本人微信公众号,一起开启前端小白进阶的世界!