loading...

2

数组操作

javascript读完大概需要8分钟

  • 发布时间:2017-08-03 14:41 星期四
  • 刘伟波
  • 198
  • 更新于2017-08-03 14:41 星期四
1.indexOf方法
var arr = [112,112,34,'你好',112,112,34,'你好','str','str1'];
Array.prototype.bb= function () {
var newArr=[];
for(var i=0; i<this.length;i++){
if(newArr.indexOf(this[i])==-1){
newArr.push(this[i]);
}
}
return newArr;
};
console.log(arr.bb());
2.对象的属性
Array.prototype.unique3 = function(){
var res = [];
var json = {};
for(var i = 0; i < this.length; i++){
if(!json[this[i]]){
res.push(this[i]);
json[this[i]] = 1;
}
}
return res;
};
console.log(arr.unique3());

3.数组最大值

Math.max.apply(null,ary);

ary.sort(function(a,b){return a-b});


4:在数组 arr 开头添加元素 item。不要直接修改数组 arr,结果返回新的数组

  1. function prepend(arr, item) {  
  2.     var arr2 = arr.slice(0);  
  3.     arr2.unshift(item);  
  4.     return arr2;  
  5.    
  6. }  

5:移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回

  1. function removeWithoutCopy(arr, item) {  
  2.     for(var i = 0; i < arr.length; i++){  
  3.         if(arr[i] == item){  
  4.             arr.splice(i,1);  
  5.             i--;  
  6.         }  
  7.     }  
  8.     return arr;  
  9. }  


6:找出元素 item 在给定数组 arr 中的位置

  1. function indexOf(arr, item) {  
  2.     for(var i = 0; i < arr.length; i++){  
  3.         if(arr[i] == item){  
  4.             return i;  
  5.         }    
  6.     }  
  7.     return -1;  
  8. }  


7.js中对数组的clone

var ary = [1,2,3];

var ary1 = ary.concat(); // 第一种方法

  var ary2 = ary.slice(0);  // 第二种方法

var ary3 = ary; // 这个不是复制,这个是引用



8、 查找一个字符串中出现次数最多的字符,统计这个次数

// 字符串可以用单引号,也可以用双引号

var str = 'ajfewiqnnfsdajfdajfdkakfjkdsfjds';

var obj = {};// 处理字符串字符,给对象做属性用

for(var i=0;i<str.length;i++){ // 中括号调用,数组是下标,对象是属性,obj.name 和 obj['name']    

if(obj[str.charAt(i)]){   // 如果对象有这个属性了,就给这个属性值自增1        

obj[str.charAt(i)]++;    

}else{  // 如果对象没有这个属性,就给这个属性值设为1        

obj[str.charAt(i)] = 1;    

}}// 找出对象属性中最多次数

var times = 0;var value = '';// for in 是另一种for循环,可以用于遍历对象的属性和方法

for(var i in obj){    

if(obj[i]>times){        

times = obj[i];        value = i;   

 }}// 最多次数保存在times中了,字符保存在value中了



9.写出3个使用this的典型应用
事件: 如onclick  this->发生事件的对象
构造函数          this->new 出来的object
call/apply        改变this


10.JavaScript中如何检测一个变量是一个String类型?

请写出函数实现 

typeof(obj) == 'string' 

obj.constructor == String;


11.网页中实现一个计算当年还剩多少时间的倒数计时程序,要求网页上实时动态显示“××年还剩××天××时××分××秒”

var oDate=new Date();
var tarDate=new Date('2018,8,3,22:00:00');
var diff=parseInt((tarDate.getTime()-oDate.getTime())/1000);//得到的是秒
var t=parseInt(diff/24/3600);//天
var h=parseInt((diff/3600%24));//小时
var m=parseInt((diff/60%60));//分钟
var s=diff%60;//秒
console.log("距离目标时间还有:"+t+"天"+h+"小时"+m+"分钟"+s+"秒")


你可能感兴趣的文章

    发表评论

    评论支持markdown,评论内容不能超过500字符,如果内容过多或者要及时回复,建议去 segmentfault平台, 也可以来我的直播间来提问。
    关于技术问题或者有啥不懂的都可以留言, 我会定期回复答疑, 也可以来 我的直播间 提问, 推荐最新仓库 前端知识体系, 感謝支持!