js中in运算符,forEach与map的用法-基础知识总结------彭记(016)
in运算符:
<script> /*1.能够遍历对象的属性*/ var obj = { 'name':'jack', age:20 }; for(var key in obj){ console.log(key + ":" + obj[key]); } /*2.还可以判断 对象 是否可以访问某个属性,而不关注这个属性是否在当前对象中定义*/ console.log('name' in obj); //true console.log('toString' in obj); // true console.log('toString1' in obj); // false </script>
forEach的使用:
<script> /*forEach用来遍历数组*/ //var arr= [123,2,4,35,435,65,7,658,67,98]; /* value:当前遍历到元素值 index:当前元素的索引 arr:当前遍历的数组 * */ /*arr.forEach(function(value,index,arr){ console.log(value + ":" + index + ":" + arr); })*/ /*自定义forEach函数*/ Array.prototype.myForEach = function(callback){ for(var i =0;i<arr.length;i++){ callback(this[i],i,this); } } var arr1= [123,2,4,35,435,65,7,658,67,98]; arr1.myForEach(function(value,index){ console.log(value + ":" + index + ":" + arr1); }); </script>
map的使用:
<script> var arr= [123,2,4,35,435,65,7,658,67,98]; /*将数组值翻倍,再存储到数组*/ /*1.使用for*/ //var newArr=[]; /*for (var i = 0; i < arr.length; i++) { var obj = arr[i]; newArr.push(obj*2); } console.log(newArr);*/ /*2.使用forEach*/ /*arr.forEach(function(value,index,arr){ newArr.push(value*2); }); console.log(newArr);*/ /*3.使用map函数*/ /*arr.map(function(value,index,arr){ newArr.push(value*2); }); console.log(newArr);*/ /*map会将结果存储到一个新生成的数组中再返回*/ /* var newArr = arr.map(function(value,index,arr){ return value * 2; }); console.log(newArr);*/ /*map的实现原理*/ Array.prototype.myMap = function(callback){ var temp = []; for(var i=0;i<this.length;i++){ var v = callback(this[i],i,this); if(v){ temp.push(v); } } return temp; }; var newArr = arr.myMap(function(value,index,arr){ return value * 2; }); console.log(newArr); </script>