选择排序:
var arr = [5,6,4,7,3,8,9,2,0,1];
var t;
var k;
//核心算法
//外层循环n-1
for(var i=0; i<arr.length-1; i++){
k = i;
//内层循环n-i-1
for(var j=i+1; j<arr.length; j++){
if(arr[k]<arr[j]){
k = j;
}
}
t = arr[i];
arr[i] = arr[k];
arr[k] = t;
}
console.log(arr);
json对象:是一种描述数据结构格式的语法规则,将若干个属性和行为封装成一个整体
定义:由键值对构成
var stu = {
key:value
key1:value1
}
访问属性:
方法一:
对象名.属性名 console.log(stu.name, stu.age, stu.score);
方法二:
下标法 var str = "score";
console.log(stu["name"], stu["age"], stu[str]);
添加自定义属性
stu.hobby = "美女";
stu["tall"] = "180";
console.log(stu.hobby, stu["tall"]);
//d.json属性的遍历
//for...in...遍历下标
for (var index in stu) {
//for...in...不能支持点运算符访问属性
//console.log(stu.index);
console.log(stu[index]);
}
indexOf
功能:查找目标元素,
// 参数:indexOf(目标元素)
// 返回值:找到返回目标元素的下标,找不到返回-1
var arr = [5,6,4,7,8];
// console.log(arr.indexOf(14));
//返回值为-1
//数组去重
var arr = [6,6,5,4,2,4,5,3,1,7,8,3];
var arr1 = [];
for(var i=0; i<arr.length; i++){
if(arr1.indexOf(arr[i]) == -1){
arr1.push(arr[i]);
}
}
console.log(arr1);
回调函数:一个函数啊当做另一个函数的参数,被当作参数的函数是回调函数
目的可以将一个函数(功能模块传至另一个函数体内)
function f1(f){//f == f2
//xxxx
//xxxx
//xxxx
//xxxx
f();//f2() == f()
//xxxx
//xxxx
//xxxx
}
var f2 = function(){
console.log("f2");
}
f1(f2);
ES5新增的遍历函数
forEach
功能:将数组的所有元素进行遍历,执行某种操作,
参数:forEach(回调函数)
回调函数(元素的数值,[元素的下标],[元素所在的数组])
返回值:无
var arr = [6,5,7,4,8];
function fun(x,index,a){
console.log(x);
a[index] += 10;
}
arr.forEach(fun);
console.log(arr);
map:和forEach几乎一毛一样,但是有返回值,
功能:将数组的所有元素进行遍历,执行某种操作,
参数:map(回调函数)
回调函数(元素的数值,[元素的下标],[元素所在的数组])
返回值:通过回调函数的return返回值,组成一个新的数组
var arr = [6,5,7,4,8];
function fun(x,index,a){
console.log(x);
a[index] += 10;
return a[index];
}
var arr1 = arr.map(fun);
console.log(arr1);
filter:
功能:过滤元素,
参数:filter(回调函数)
回调函数(元素的数值,[元素的下标],[元素所在的数组])
返回值:根据回调函数返回的布尔值,创建新的数组,
var arr = [6,5,7,4,8];
function fun(x){
if(x%2){
return true;
}else{
return false;
}
}
var arr1 = arr.filter(fun);
console.log(arr1);
字符串的两种定义方式
1.内置基本类型:var ac=""
2.引用类型:var st =new String("hhhhhh")
asc码值和字符
charAt
功能:返回索引对应的字符,
参数:charAt(索引)
返回值:返回索引对应的字符
console.log(str.charAt(0));
charCodeAt
功能:返回索引对应的字符的asc码值,
参数:charCodeAt(索引)
返回值:返回索引对应的字符的asc码值,
console.log(str.charCodeAt(0));
字符串的API
charAt / /遍历
charCodeAt
length
fromCharCode
功能:将asc码值转换为字符,
参数:fromCharCode(asc1,[asc2...]);
返回值:转换后的字符串,
说明:通过string调用
var str = String.fromCharCode(97,98);
console.log(str);
//indexOf
//功能:查找子串首次出现的位置
//参数:indexOf(子串)
//返回值:找到返回子串的首字母下标,找不到返回-1
//lastIndexOf
//功能:从末尾查找子串首次出现的位置
//参数:lastIndexOf(子串)
//返回值:找到返回子串的首字母下标,找不到返回-1
// var str = "helloworld";
// console.log(str.indexOf("o"));
// console.log(str.lastIndexOf("o"));
// replace
// 功能:字符串替换,
// 参数:replace(被替换字符串,替换字符串);
// 返回值:新字符串
// var str = "zhurongrui de ge bi shi zhurongrui";
// str = str.replace("zhurongrui","老王");
// console.log(str);
// slice
// 功能:字符串截取,
// 参数:slice(起始位置,结束位置),左闭右开,
// 返回值:截取的子串
var str = "helloworld";
console.log(str.slice(2,5));
//substring:几乎和slice一毛一样
console.log(str.substring(2,5));
//split
// 功能:字符串分割函数,将分割的字符串转换为数组,
// 参数:split(分隔符)
// 返回值:数组,
// var str = "gaoshaoxin凢凢de ge bi zh凢凢u zhe lao凢凢wang";
// var arr = str.split("凢凢");
// console.log(arr);