精华内容
下载资源
问答
  • 主要介绍了PHP常见数组函数用法,结合实例形式分析了array_merge、array_slice及array_map函数的使用技巧,需要的朋友可以参考下
  • 本文实例讲述了PHP常见数组排序方法。 一、数组操作的基本函数 数组的键名和值 array_values($arr); 获得数组的值 array_keys($arr); 获得数组的键名 array_flip($arr); 数组中的值与键名互换(如果有重复前面的会被...
  • js---常见数组面试题

    2020-04-11 20:35:49
    JS常见面试题 数组一.数组创建方式:二.如何确认变量类型是数组三.数组的深浅拷贝四.数组去重五. for-in,for-of,forEach()六.数组常用方法七.arguments 可变参 一.数组创建方式: 使用字面量的方式 var arr=[] ; ...

    JS常见面试题

    一.数组创建方式:

    使用字面量的方式 var arr=[] ; (最常用)
    使用数组构造函数 var arr=new Array();
    使用数组表达式 var arr=Array();
    

    二.如何确认变量类型是数组

    1.Array.isArray直接判断
    2.(利用class)Object. prototype.toString.call(obj)===[ object Array]
    class:每个对象的内部属性,记录创建对象时使用的类型名,一旦创建,无法修改。
    问题:数组类型等内置类型,重写了toString方法,直接调用数组对象的方法,不再返回class

    三.数组的深浅拷贝

    1. 浅拷贝(数组): (会改变原数组)
      就是数组A重新赋值给数组B,数组B里的属性值被改变,则数组A里的值也会跟着发生改变。
    2. 深拷贝(数组): (不会改变原数组)
      (1)使用slice() 和 concat()方法来实现深拷贝
      (2)利用循环实现
     // arrayObj.slice(start, [end]) 
     //该方法返回一个 Array 对象,其中包含了 arrayObj 的指定部分。不会改变原数组 
    var arr1 = [1, 2, 3];
    var arr2 = arr1.slice(0);
    arr1[0] = 4;
    console.log(arr1); //4, 2, 3
    console.log(arr2); //1, 2, 3
    
    arrayObj.concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
    var arr1 = [1, 2, 3];
    var arr2 = arr1.concat();
    arr1[0] = 4;
    console.log(arr1); //4, 2, 3
    console.log(arr2); //1, 2, 3
    
    循环实现深拷贝
    var arr1 = [1, 2, 3];
      var arr2 = [];
      for (var i = 0; i < arr1.length; i++) {
         arr2.push(arr1[i]);
     }
     arr1[0] = 4;
     console.log(arr1); //4, 2, 3
     console.log(arr2); //1, 2, 3
    

    四.数组去重

    1. 遍历数组使用indexOf去重
      新数组中若该项的下标为-1,则表示新数组中没有找到,就可以将该项放入新数组中。
    arr.forEach(item=>{
        if(arr2.indexOf(item) == '-1'){
            arr2.push(item);
        }    
    })
    
    1. sort排序后遍历过滤数组
      先给数组排序,这样相同的项总是相邻。然后遍历数组和前一个对比,不相等就放入新数组中。
    var arr2 = [arr[0]];
    arr.forEach((item,index)=>{
        if(item != arr2[arr2.length-1]){
            arr2.push(item)
        }
    })
    
    1. set实现
      使用扩展运算符[…]和Set结构相结合,可以去掉数组中重复的元素。
    var arr2 = new Set(arr);
    var newArr = [...arr2]; 
    console.log(newArr); 
    

    五. for-in,for-of,forEach()

    1.for-in 输出的是键,可以用来遍历json

    for-in用来循环对象中的属性,但是通过for-in循环输出的属性名的顺序是不可测的。具体来说,所有属性都会被返回一次,但返回的先后次序可能会因浏览器而异。

    2.for-of输出值:

    for-of三种方法
    key()是对键名的遍历;
    value()是对键值的遍历;
    entries()是对键值对的遍历;

    3.forEach()循环:forEach中传入要执行的回调函数,函数有三个参数。第一个参数为数组元素(必选),第二个参数为数组元素索引值(可选),第三个参数为数组本身(可选)

    <script>
        const arr = ["a", "v", "y", "s"]
    
        for (let item in arr) {
        console.log(item)   // 键0,1,2,3
        }
    
        for (let item of arr) {
        console.log(item)   //a,v,y,s
        }
    </script>
    

    六.数组常用方法

    • 添加
      • push(元素):从尾部添加 push方法返回的数组的长度
      • unshift(元素):从头部添加
    • 删除
      • pop():从尾部弹出
      • shift():从头部弹出
    • splice
      • splice(起点,长度):删除
      • shift(起点,长度,添加元素):插入
      • shift(起点,长度,替换元素):替换
    • concat(数组) : 连接数组
    • join(‘分隔符’) : 生成字符串(字符串split)
    • sort() :排序
      • sort():只认字符串
      • sort(function(){}):可对数字排序
    <script>
        var arr = [99,67,8,11,112];
        // alert(arr.sort()); 
        //输出 11,112,67,8,99
        
        alert(arr.sort(function(n1,n2){
            return n1-n2;
        }))
        //8,11,67,99,112
    </script>
    

    七.arguments 可变参

    1. arguments不是数组
      虽然可以使用下标访问相应的参数,但是并非正真的数组。它不能使用数组的.join()、.concat() 、.pop()等数组的方法。
    2. 将伪数组转为真正的数组的方法 Array.prototype.slice.call(arguments)
    展开全文
  • 常见数组array(API)

    万次阅读 多人点赞 2018-11-12 21:28:59
    不改变原数组: 将数组转化为字符串(String) var arr=[1,2,3]; var str=String(arr); console.log(str); //1,2,3 console.log(arr); //[1,2,3] 把数组中的所有元素放入一个字符串(join) var ...

    不改变原数组:

    1. 将数组转化为字符串(String)
    var arr=[1,2,3];
    var str=String(arr);
    console.log(str); //1,2,3
    console.log(arr); //[1,2,3]
    
    1. 把数组中的所有元素放入一个字符串(join)
    var arr=[1,2,3];
    var str=arr.join();//默认是逗号,也可以自定义连接符
    console.log(str); //1,2,3
    console.log(arr); //[1,2,3]
    
    1. 数组拼接(concat)
    var arr=[1,2,3];
    var newArr=arr.concat(4,[5,6]);
    console.log(newArr); //[1,2,3,4,5,6]
    console.log(arr); //[1,2,3]
    
    1. 数组选取,获取子数组(slice 含头不含尾)
    var arr=[1,2,3];
    var newArr=arr.slice(0,2);
    console.log(newArr); //[1,2]
    console.log(arr); //[1,2,3]
    
    1. 返回某个指定的字符串值在字符串中首次出现的位置(indexOf)
    var arr=[1,3,2];
    var num=arr.indexOf(3); 
    console.log(num); //1
    console.log(arr); //[1,3,2]
    

    改变原数组
    1.从数组中添加/删除项目,然后返回被删除的项目(splice(i,n)从第i个开始的n个元素)

    var arr=[1,2,3];
    var newArr1=arr.splice(0,2);
    var newArr2=arr.splice(0,0,4,5);
    console.log(newArr1); //[1,2]
    console.log(newArr2);//[]
    console.log(arr); //[4,5,3]
    
    1. 反转数组元素(reverse)
    var arr=[1,3,2];
    var newArr=arr.reverse();
    console.log(newArr); //[2,3,1]
    console.log(arr); //[2,3,1]
    
    1. 对数组的元素进行排序(sort)
    var arr=[1,3,2];
    var newArr=arr.sort((a,b)=>a-b); //
    console.log(newArr); //[1,2,3]
    console.log(arr); //[1,2,3]
    
    1. 向数组的末尾添加一个或多个元素,并返回新的长度(push)
    var arr=[1,3,2];
    var newArr=arr.push(4); 
    console.log(newArr); //4
    console.log(arr); //[1,3,2,4]
    
    1. 删除并返回数组的最后一个元素(pop)
    var arr=[1,3,2];
    var newArr=arr.pop(); 
    console.log(newArr); //2
    console.log(arr); //[1,3]
    
    1. 用于把数组的第一个元素从其中删除,并返回第一个元素的值(shift)
    var arr=[1,3,2];
    var newArr=arr.shift(); 
    console.log(newArr); //1
    console.log(arr); //[3,2]
    
    1. 向数组的开头添加一个或更多元素,并返回新的长度(unshift)
    var arr=[1,3,2];
    var newArr=arr.unshift(4); 
    console.log(newArr); //4
    console.log(arr); //[4,1,3,2]
    

    迭代方法(以下方法都不会修改数组中包含的值):
    every():对数组中的每一项运行给定的函数,如果该函数对每一项都返回true,则返回true。
    filter():对数组中的每一项运行给定的函数,返回该函数会返回true的项组成的数组。
    forEach():对数组中的每一项运行给定的函数。这个方法没有返回值。
    map():对数组中的每一项运行给定的函数,返回每次函数调用的结果组成的数组。
    some():对数组中的每一项运行给定的函数,如果该函数对任一项返回true,则返回true。

    var numbers=[1,2,3,4,5,4,3,1];
    var everyResult=numbers.every(function(item,index,array){
       return (item>2);
    })
    console.log(everyResult); //false
    
    var someResult=numbers.some(function(item,index,array){
       return (item>2);
    })
    console.log(someResult); //true
    
    var filterResult=numbers.filter(function(item,index,array){
       return (item>2);
    })
    console.log(filterResult); //[3,4,5,4,3]
    
    var mapResult=numbers.map(function(item,index,array){
       return item*2;
    })
    console.log(mapResult); //[2,4,6,8,10,8,6,2]
    
    var sum=0;
    var forEachResult=numbers.forEach(function(item,index,array){
       array[index] == item;   //true 
       sum+=item; 
    })
    console.log(sum); //23
    

    归并方法
    reduce():从数组中的第一项开始,逐个遍历到最后。
    reduceRight():从数组的最后一项开始,向前遍历到第一项。

    var arr=[1,2,3,4,5];
    var sumReduce=arr.reduce(function(prev,cur,index,array){
    	return prev+cur
    }); 
    console.log(sumReduce); //15
    var sumReduceRight=arr.reduceRight(function(prev,cur,index,array){
    	return prev+cur
    }); 
    console.log(sumReduceRight); //15
    
    展开全文
  • 常见数组面试题

    2011-11-02 21:20:52
    1.数组求和?(用递归,只用一行代码) 2.求数组的最大值和最小值(用递归的方法,将数组分为左右两个子数组,返回条件是左右数组只剩一个或两个元素)
  • 1.简单数组排序 sort() 函数和rsort() 函数:语法规则:bool sort(array &array [,int sort_flags]bool rsort(array &array [.int_sort_flags]参数:第一个参数是排序数组对象第二个参数是可以选的 可选值:...

    1.简单数组排序 sort() 函数和rsort() 函数:

    语法规则:bool sort(array &array [,int sort_flags]

    bool rsort(array &array [.int_sort_flags]

    参数:

    第一个参数是排序数组对象

    第二个参数是可以选的 可选值:

    SORT_REGULAR:是默认值,将自动识别数组的元素类型进行排序

    SORT_NUMERIC:用于数组元素排序

    SORT_STRING:用于字符串排序

    SORT_LOCALE_STRING:根据当前的locale设置来把元素当作字符串比较

    示例:$a=array(4,7,9,1);

    sort($a);

    pirnt_r($a);

    rsort($a);

    print_r($a);

    2.根据键名对数组排序

    定义: ksort() 函数按照键名对数组进行有小到大的排序。 krsort()与ksort()函数相反,排序后为数组值保持原来的键。

    示例$data= array(5=>"five",8=>"eight",1=>"one",7=>"seven");

    ksrot($data);

    print_r($data);

    krsot($data);

    print_r($data);

    3.根据元素值排序

    定义 : asort() 从小到大 / arsort() 从大到小,用这个函数排序,原始键名将被忽略,使用依次数字重新索引数组下标

    示例 :$data=array("a"=>1,"b"=>2,"c"=>3);

    asort($data);

    print_r($data);

    arsort($data);

    print_r($data);

    4.自然排序

    定义 : 是个非常特殊的排序方式,这种方式使用认知而不是使用计算规则,这种特性称为——自然排序法,即数字从1到9,字母从a-z,短者优先。

    示例 :$data=array("file1.txt","file11.txt","file111.txt");

    natsort($data);//普通自然排序

    natcasesort($data);//忽略大小写

    5.根据用户自定义排序规则

    语法规则 :bool usort(array &array ,callback cmp_function)

    bool uasort(array &array,callback cmp_function)

    bool uksort(array &array,callback cmp_function)

    说明 : 自定义回调函数,需要两个参数,分别是数组两个连续元素,比较第一个参数小于,大于,等于第二个参数是分别返回 0,1,-1

    示例 :$data= array("ab","abc","a","ac","abcd");

    usrot($data,"mysortByLen");

    function mysortByLen($one,$two){

    if(strlen($one)== strlen($two)){

    return 0;

    }else{

    return (strlen($one)>strlen($two))?1:-1;

    }

    6.多维数组排序

    定义 : array_multisort()函数对多个数组排序,或者根据某一维或多维对多维数组排序。bool array_multisort(array array1 [,mixed arg,[,array ....]])

    示例:$data=array(

    array("id"=>1,"name"=>4),

    array("id"=>1,"name"=>2),

    array("id"=>2,"name"=>3)

    );

    foreach($data as $key=>$value){

    $ids[$key]=$value["id"];

    $names[$key]=$value["name"]

    }

    array_multisort($data,$ids,$names);

    print_r($data);

    输出结果:array( array("id"=>1,"name"=>2), array("id"=>1,"name"=>4), array("id"=>2,"name"=>3)

    );

    推荐:《PHP视频教程》

    展开全文
  • php常见数组函数有:1、“array_count_values”函数,用于统计数组中所有的值;2、“array_flip”,用于交换数组中的键和值;3、“array_multisort”,用于对多个数组或多维数组进行排序等等。php常见数组函数array_...

    php常见数组函数有:1、“array_count_values”函数,用于统计数组中所有的值;2、“array_flip”,用于交换数组中的键和值;3、“array_multisort”,用于对多个数组或多维数组进行排序等等。

    27ff9092e474b2185a3d7f2a64310586.png

    php常见数组函数

    array_count_values — 统计数组中所有的值

    array_flip — 交换数组中的键和值

    array_merge — 合并一个或多个数组

    array_multisort — 对多个数组或多维数组进行排序

    array_pad — 以指定长度将一个值填充进数组

    array_pop — 弹出数组最后一个单元(出栈)

    array_push — 将一个或多个单元压入数组的末尾(入栈)

    array_rand — 从数组中随机(伪随机)取出一个或多个单元

    array_keys — 返回数组中部分的或所有的键名

    array_values — 返回数组中所有的值

    count — 计算数组中的单元数目,或对象中的属性个数

    sort — 对数组排序

    如果您想了解更多相关知识,请访问gxlcms。

    展开全文
  • java常见数组方法及实例

    千次阅读 2018-03-29 16:52:07
    介绍数组常用的方法和具体实例演示1、数组反转Array Collections.reverse(ArrayList) 将数组进行反转;2、通过 Collection 类的 Collection.max() 和 Collection.min() 方法来查找数组中的最大和最小值:下面举例...
  • 上一篇我们提到了在typescript中对于对象的定义和使用,俗话说"万物皆对象",这里我们就来说一下另一个特别的对象---数组。 在网上有很多对于数组的定义,例如:数组对象是使用单独的变量名来存储一系列的值,简单...
  • 常见数组函数

    2020-08-12 14:50:52
    1.array_column — 返回数组中指定的一列 2.array_pop — 将数组最后一个单元弹出(出栈) 3.array_push — 将一个或多个单元压入数组的末尾(入栈) 4.array_shift — 将数组开头的单元移出数组 5.array_unshift —...
  • C# 常见数组声明与使用

    千次阅读 2019-02-11 22:45:01
    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;...namespace _0210_数组的声明 { class Program { static void Main(string[] ...
  • 常见数组函数

    千次阅读 2018-06-14 23:34:28
    array_multisort($a,[SORT_ASC|SORT_DESC],[SORT_REGULAR|SORT_NUMERIC|SORT_STRING],[$b])//对多个数组或多维数组进行排序,字符串键名将被保留,但是数字键将被重新索引 array_pad($a,size{>0补在右侧,补在左侧},...
  • js常见数组的方法及高阶函数

    千次阅读 2019-03-18 00:18:26
    //[11, 12, 13, 14, 15] 返回一个新的数组 不同于forEach的是: map() 方法返回一个新数组数组中的元素为原始数组元素调用函数处理后的值。 map() 方法按照原始数组元素顺序依次处理元素。 注意: map() 不会对空...
  • java 常见数组异常

    2019-04-05 15:39:13
    数组常见的异常 ArratIndexOutfBoundsException:数组角标越界异常 合理范围;[0,arr.length] 越界arr[-1],arr[att.length] NullPointerExcetion:空指针异常 int[] arr=null; arr[0] ...
  • jQ常见数组问题

    2019-02-18 10:44:00
    jQuery 判断是否包含在数组中 jQuery.inArray(): vararr=["xml","html","css","js"]; $.inArray("js",arr); //返回 3, 如果不包含在数组中,则返回 -1; 在前提不知道bb在这个数组的下标,删除bb这个元素 ...
  • Matlab中常见数组操作

    万次阅读 2017-03-30 11:39:47
    1.对数组元素进行平移 Y = circshift(A,K) %example Y = circshift(A,K,dim) 注意,one dim A 应该定义为column-wise,例如 Array = {5,6,2,1,1,1,4,3}; Array =Array'; ArrayShift = circshift(Array,3);
  • JS常见数组操作

    2017-12-23 16:43:50
    1、indexOf判断一个数组中某一个元素是否存在,如果不存在返回-1 let isExit = arr.indexOf(4) != -1; 2、push向数组中添加元素 arr.push(100); 3、splice从数组中删除一些元素,插入一些元素 参数1:删除的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 524,758
精华内容 209,903
关键字:

常见数组