前端-数组合集

1.检测数组的几种方式

  1.Array.isArray(); es5
    
  2. instanceof Array
  3.arr.constructor//Array

​  4. toString.call([]);//”[object Array]

2.Array的常用方法


  方法              	描述                             
  concat()        	连接两个或更多的数组,并返回结果。              
  join()          	把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
  pop()           	删除并返回数组的最后一个元素                 
  push()          	向数组的末尾添加一个或更多元素,并返回新的长度。       
  reverse()       	颠倒数组中元素的顺序。                    
  shift()         	删除并返回数组的第一个元素                  
  slice()         	从某个已有的数组返回选定的元素                
  sort()          	对数组的元素进行排序                     
  splice()        	删除元素,并向数组添加新元素。                
  toSource()      	返回该对象的源代码。                     
  toString()      	把数组转换为字符串,并返回结果。               
  toLocaleString()	把数组转换为本地数组,并返回结果。              
  unshift()       	向数组的开头添加一个或更多元素,并返回新的长度。       
  valueOf()       	返回数组对象的原始值                     

82、列举常用的js框架以及分

3.如何区分数组和对象

1、从原型入手,Array.prototype.isPrototypeOf(obj); 
 利用isPrototypeOf()方法,判定Array是不是在obj的原型链中,
 如果是,则返回true,否则false。Array.prototype.isPrototype([]) //true

2、也可以从构造函数入手,利用对向的constructor属性

3、根据对象的class属性(类属性),跨原型链调用toString()方法。
Object.prototype.toString.call(Window);

4、Array.isArray()方法。

4.如何检测数组的数据类型

方法一、判断其是否具有“数组性质”,如slice()方法。
可自己给该变量定义slice方法,故有时会失效 
方法二、obj instanceof Array 在某些IE版本中不正确 
方法三、toString.call([]);//”[object Array]” 
方法四、

方法一二皆有漏洞,在ECMA Script5中定义了新方法Array.isArray(), 
保证其兼容性,
最好的方法如下:
 if(typeof Array.isArray==="undefined"){ 
 Array.isArray = function(arg){ 
 return Object.prototype.toString.call(arg)==="[object Array]"
 }; 
 }

5.编写一个数组去重的方法**

 [1,3,1,5,2,3,7]=>[1,3,5,2,7]

  方法:

  1、 先创建一个空数组,用来保存最终的结果
  2、 循环原数组中的每个元素
  3、 再对新数组对每个元素进行位置查找,判断是否存在,
  如果没有,将把这个元素放到新数组中
  4、 返回这个新数组

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

1) 实现对该数组的倒排,反转,输出[5,1,4,2,6,3]

  reverse()

2) 实现对该数组的降序排列,输出[6,5,4,3,2,1]

  冒泡排序


//  -- 冒泡排序



作用   对数组排序,从小到大 



冒泡工具  可以从MDN上面查


  // 对
  数组排序,从小到大  -- 冒泡排序
  function sort(array) {
      // 外层循环 控制趟数
      for (var i = 0; i < array.length - 1; i++) {
        // 假设排好序了
        var isSort = true;
        // 内层循环 控制比较的次数
        for (var j = 0; j < array.length - 1 - i; j++) {
          if (array[j] > array[j + 1]) {
            isSort = false;
            // 交换位置
            var tmp = array[j];
            array[j] = array[j + 1];
            array[j + 1] = tmp;
          }
        }
        // 判断是否排好了
        if (isSort) {
          break;
        }
      }
    } 




调用冒泡工具在控制台输出(冒泡工具是写好的直接拿来用就可以了)


var array = [34, 12, 88, 20, 30];

console.log(sort(array));

6.Slice和splice的区别

1.slice(start,end):方法可从已有数组中返回选定的元素,返回一个新数组,
包含从start到end(不包含该元素)的数组元素。

注意:该方法不会改变原数组,而是返回一个子数组,如果想删除数组中的一段元素,
应该使用Array.splice()方法。

2.splice():该方法向或者从数组中添加或者删除项目,返回被删除的项目。
(该方法会改变原数组)

splice(index,howmany,item1,...itemX)

7.在Javascript中什么是伪数组?如何将伪数组转化为标准数组?

伪数组(类数组):无法直接调用数组方法或期望length属性有什么特殊的行为,但仍可以对真正数组遍历方法来遍历它们。典型的是函数的argument参数,还有像调用getElementsByTagName,document.childNodes之类的,它们都返回NodeList对象都属于伪数组。

可以使用Array.prototype.slice.call(fakeArray)将数组转化为真正的Array对象。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zmmsdk15225185085

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值