我是靠谱客的博主 外向水壶,最近开发中收集的这篇文章主要介绍js算法(一),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.递归算法,必须得有退出条件

例子1:

function getSum(num) {
if(num < 1) {
return num = 0;
}
return getSum(num - 1) + num;
}
var x = getSum(5);
console.log(x);

例子2:

var obj = {
a: {
x:1,
y:2,
z:3,
},
b: {
x:4,
y:5,
z:6
},
c: {
x:7,
y:8,
z:9
},
d:'hello',
arr:['a','b','c']
};
function getVal(obj) {
for (var o in obj) {
if (typeof obj[o] == 'object') {
getVal(obj[o]);
} else {
console.log(obj[o]);
}
}
}
getVal(obj);

例子3:四种JS数组去重的方法

//利用四种方法分别实现数组去重操作
//index of
var arr=[1,3,4,5,3,6,7,8,9,5,6,7,8];
function f(arr){
var newarr=[];
for (var i = 0; i < arr.length; i++) {
if (newarr.indexOf(arr[i])<0) {
newarr.push(arr[i])
}
}
return newarr;
}
console.log(f(arr));
//for 循环
function f1(arr){
var arr1=[];
var newarr=[];
for (var i = 0; i < arr.length; i++) {
for (var j = i+1; j < arr.length; j++) {
if (arr[i]===arr[j]) {
arr1.push(j);
}
}
}
for (var i = 0; i < arr.length; i++) {
if (arr1.indexOf(i)<0) {
newarr.push(arr[i])
}
}
return newarr;
}
console.log(f1(arr));
//对象,主要借助了对象的k值不能重复
function f3(arr){
var obj={},newarr=[],i,len=arr.length;
for (i = 0; i < len; i++) {
if (!obj[arr[i]]) {
obj[arr[i]]=true;
newarr.push(arr[i]);
}
}
return newarr;
}
console.log(f3(arr));
//ES5的filter方法
function f4(arr){
return arr.filter(function(itme,index,obj){
return obj.indexOf(itme)===index;
})
}
console.log(f4(arr));

 

最后

以上就是外向水壶为你收集整理的js算法(一)的全部内容,希望文章能够帮你解决js算法(一)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部