数组
什么是数组?
索引从 0 开始,由相同数据类型组成的集合叫做数组。
为什么需要数组(数组解决了什么问题)?
数组有什么特点?
有索引值; 数组中的元素是相同的数据类型; 是有序的,有长度(数组的长度表示元素的个数) 数组元素可以为任意 js 数据类型
用 for 循环写出 数组API
var arr = [ 2 , 6 , 4 , 7 , 8 , 10 ] ;
var name = "yyqx" ;
for ( var i = arr. length; i >= 0 ; i-- ) {
arr[ i] = arr[ i - 1 ] ;
}
arr[ 0 ] = name;
console. log ( arr) ;
var arr = [ 2 , 6 , 4 , 7 , 8 , 10 ] ;
var newArr = [ ] ;
var name = "yyqx" ;
for ( var i = 0 ; i < arr. length; i++ ) {
var count = i + 1 ;
newArr[ count] = arr[ i] ;
}
newArr[ 0 ] = name;
console. log ( newArr) ;
var arr = [ 2 , 2 , 3 , 4 , 6 , 1 ] ;
arr[ arr. length] = "dundun" ;
console. log ( arr) ;
function push ( arr, name) {
var arr1 = [ ] ;
arr1[ arr. length] = name;
for ( var i = 0 ; i < arr. length; i++ ) {
arr1[ i] = arr[ i] ;
}
return arr1;
}
console. log ( push ( arr, "happy" ) ) ;
var arr = [ 2 , 5 , 3 , 4 , 6 ] ;
var name = "dundun" ;
var old = [ arr[ 3 ] , arr[ 4 ] ] ;
arr[ 3 ] = name;
for ( var i = 0 ; i < old. length; i++ ) {
var count = 3 + i + 1 ;
arr[ count] = old[ i] ;
}
console. log ( arr) ;
函数
什么是函数? 带有一定功能,并且重复执行的 为什么会有函数?(函数解决了哪些问题) 为了解决按需执行的代码并且有规律的代码片段,重复编写,可维护性低的问题 函数有哪些内容
形参:形参可以有 n 个 作用:接受实参,保存实参数据,相当于变量 实参:是具体的数据,可以为 js 任意类型,在函数调用时传入 return 作用:将函数内部运算结果输出到函数外部,结束函数内部的语句
对象
对象:用于表示不同意义的数据 对象:key-value 键值对 key 都是字符串 相当于变量 value 任意类型的 js 数据
函数模拟数组 API-concat()
function concat ( ) {
var res = [ ] ;
console. log ( arguments) ;
for ( var i = 0 ; i < arguments. length; i++ ) {
var arr = arguments[ i] ;
for ( var j = 0 ; j < arr. length; j++ ) {
res. push ( arr[ j] ) ;
}
}
return res;
}
var arr_ = concat ( [ 1 , 2 , 35 , 6 , 3 ] , [ 134 ] , [ 63 , 4 , 2 , 5 ] ) ;
console. log ( arr_) ;
练习题
将数组变为对象 输入 var arr = [‘name’,‘fanzhen’,‘age’,12] 输出:{name:‘fanzhen’,age:12}
var arr = [ "name" , "fanzhen" , "age" , 12 ] ;
var obj = { } ;
for ( var i = 0 ; i < arr. length; i++ ) {
if ( i % 2 == 0 ) {
key = arr[ i] ;
} else {
obj[ key] = arr[ i] ;
}
}
console. log ( obj) ;
var arr = [ "name" , "fanzhen" , "age" , 12 ] ;
var keys = [ ] ;
var vals = [ ] ;
for ( var i = 0 ; i < arr. length; i++ ) {
if ( i % 2 == 0 ) {
keys. push ( arr[ i] ) ;
} else {
vals. push ( arr[ i] ) ;
}
}
var obj = { } ;
for ( var j = 0 ; j < keys. length; j++ ) {
obj[ keys[ j] ] = vals[ j] ;
}
console. log ( obj) ;
function arrObject ( arr) {
var obj = { } ;
for ( var i = 0 ; i < arr. length; i++ ) {
if ( i % 2 == 0 ) {
key = arr[ i] ;
} else {
obj[ key] = arr[ i] ;
}
}
return obj;
}
console. log ( arrObject ( [ "name" , "yyqx" , "age" , 21 ] ) ) ;
过滤对象中为空字符的字段 输入:{name:’’,age:12} 输出:{age:12}
var obj = { name: '' , age: 12 } ;
for ( var key in obj) {
if ( obj[ key] == '' ) {
delete obj[ key] ;
}
}
console. log ( obj) ;
var obj = { name: '' , age: 12 } ;
var res = { } ;
for ( var key in obj) {
if ( obj[ key] !== '' ) {
res[ key] = obj[ key] ;
}
}
console. log ( res) ;
function delEmpty ( obj) {
for ( var key in obj) {
if ( obj[ key] == '' ) {
delete obj[ key] ;
}
}
return obj;
}
console. log ( delEmpty ( { name: "" , age: 12 } ) )