数组操作
原 javascript读完大概需要8分钟
- 发布时间:2017-08-03 14:41 星期四
- 刘伟波
- 640
- 更新于: 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,结果返回新的数组
- function prepend(arr, item) {
- var arr2 = arr.slice(0);
- arr2.unshift(item);
- return arr2;
- }
5:移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回
- function removeWithoutCopy(arr, item) {
- for(var i = 0; i < arr.length; i++){
- if(arr[i] == item){
- arr.splice(i,1);
- i--;
- }
- }
- return arr;
- }
6:找出元素 item 在给定数组 arr 中的位置
- function indexOf(arr, item) {
- for(var i = 0; i < arr.length; i++){
- if(arr[i] == item){
- return i;
- }
- }
- return -1;
- }
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+"秒")
发表评论: