概述
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算法(一)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复