JavaScript和php数组部分方法对比

蓝色部分:操作会影响原数组;粉色部分:操作影响原数组,使用时,用一个新变量接收返回值

 
JavaScript
PHP
定义
1.字面量方法:var arr=[1,2,3];
2.构造方法: var arr = new Array ("abc") ;
1.定义普通数组
$arr = [1,2,3];
$arr = array(1,2,3);
2.定义关联数组
$arr = array("a"=>10,"b"=>5,"f"=>100);
从数组后面添加元素
(下标自动累加)
arr.push("abc");
1.array_push($arr,100);
2.$arr[]="a";
从数组前面添加元素 arr.unshift("aaa",3); array_unshift($arr,200);
从末尾删除一个元素 arr.pop(); array_pop($arr); 
从开头删除一个元素 arr.shift(); array_shift($arr); 
任意位置添加或删除
arr.spice(1,0,100,200);
删除 参数1:初始位置下标,参数2:删除个数
添加:参数1:初始位置下标,参数2:0,
          参数3:要添加的新元素(默认添加到被删除元素的位置)
删除且添加:参数1:初始位置下标,参数2:删除个数,
          参数3:要添加的新元素
末尾添加 arr.splice(arr.leng th, 0 , 1000 );
末尾删除 arr.splice(arr.leng th - 1 , 1 );
1.unset($arr[1]); //删除了下标为1的元素 (下标不会重新排列)

2.array_splice($arr,1,2,[11,22,33]);
//从下标为1的位置删除两个元素并且替换为“11,22,33”
截取数组
var arr1 = arr.slice(0,4); [ 开始位置下标,结束位置下标)
省略参数2,默认截到最后
从倒数第三个开始截取:var arr2 = arr.slice(-3);
$subArr = array_slice($arr,1,1); 
参数2:开始截取的位置,参数3:截取的长度
数组转为字符串
1.var str = arr.toString();
2.var str = arr.join("**");转为字符串的同时,每个元素间 用“**”分隔
参数是自定义分隔符,默认是逗号
 
翻转数组的元素 arr.reverse(); [ 1,2,3,4 ] 转为 [ 4,3,2,1 ]
$a=array("a"=>"Volvo","b"=>"BMW","c"=>"Toyota");
array_reverse($a);
合并数组
var arr1=[1,2]; var arr2=[3,4]; var arr3=[3,4]; 
var mixArr=arr1.concat(arr2,arr3);
 
拷贝
var copyArr = arr.concat(); 
拷贝后对原数组或副本修改都不会影响到另一个
 
处理数组的每个元素
修改元素的值
//每个数都加100组成一个新数组,也可以与字符串拼接
var mArr=arr.map(function(value){
    return 100+value+"px";
});
//每个数都加10组成一个新数组
$newArr = array_map(function($value){
    return $value+10;
},$arr);
遍历数组
arr.forEach(function(value,index){
      console.log(value,index);
});
参数是一个回调函数,数组有几个元素,回调函数就会被调用多少次
回调函数的参数1获取到的是值,参数2获取到下标
//1.遍历普通数组
for($i = 0; $i < count($arr); $i++){
    echo $arr[$i]."<br>";
}
//2.遍历关联数组
foreach($arr as $key =>$value){//$value是遍历出来的值,$key是键  
    echo '$key = '.$key.'=>$value ='.$value;
}
查找元素
var arr=["a","b","a"];
var index = arr.indexOf("a")r; //查找到数组a r中的a
                                              (找到第一个就结束)
返回值:这个元素的下标,若没找到返回-1
参数1:要找的元素,参数2:从哪个下标位置开始找
1. //找到返回1,否则:false
    $arr = ["a","b","c"];
    $res = in_array("a",$arr);
2. //找到返回下标(键值),找不到返回false
    array_search(32,$arr);
查找元素(找到符合条件所有元素,数组形式返回)
arr = [100,101,200];
//找到大于100的
var filArr=arr.filter(function(value){ //回调函数的参数是每个元素
    return value>100; //条件
});
 
查找元素(找到符合条件的第一个元素,返回该值)
arr = [100,101,200];
//找到大于100的
var filArr=arr.find(function(value){ //回调函数的参数是每个元素
    return value>100; //条件
});
 
判断是否数组中所有元素都满足条件
//判断是不是每一个都>10
var arr = [100,101,200];
var rel=arr.every(function(value){ //回调函数的参数是每个元素
        //条件, 有一个元素不满足就返回false停止继续回调 every函数返回false
        return value>10;
});
every()函数返回值为bool类型
 
判断是否数组中是否存在满足条件的元素
var rel=arr.some(function(value){
      return value==101;
      //有一个满足就返回true停止回调 some函数返回true,
      若都不满足返回false 
 });
 
排序
var names = ["a","b","c"];
names.sort();
//不能正常排序数字数组,因为默认是以首字母方式排序
//用回调函数来修改排序方式
numbers.sort(function(a,b){
// return a>b;//从小到大
    return a<b; //从大到小
});
rsort($arr); //降序排列
sort(); //升序排列
asort();  //根据关联数组的值,升序排列
arsort(); //根据关联数组的值,降序排列
ksort(); //根据关联数组的键,升序排列
krsort(); //根据关联数组的键,降序排列
 返回数组的长度 arr.length;
$cars=array("Volvo","BMW","Toyota");
echo count($cars); //3

发布了22 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/floracuu/article/details/78327294