Array数组循环全解1

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Array数组循环全解1相关的知识,希望对你有一定的参考价值。

参考技术A 1、for循环语句
2、forEach数组对象内置方法  
3、map数组对象内置方法  
4、filter数组对象内置方法  
5、reduce数组对象内置方法  
6、some数组对象内置方法  
7、every数组对象内置方法  
8、indexOf数组对象内置方法  
9、lastIndexOf数组对象内置方法  
10、for in循环语句
11、for of循环语句

简洁明了,通俗易懂,性能最好

接收两个参数,
第一个参数是在每一项上运行的函数(拥有三个参数),
第二个参数「可选的」是运行该函数的作用域对象(影响this的值),
return不能中断函数继续执行,所以没有返回值,
不能改变原数组,使用方便一般涌来代替for

可以return返回值,但是不改变原数组,
一般(通过函数方法操作)用来映射为一个新数组

一般通过函数方法,过滤出符合要求的项,返回出来一个新数组

可以实现一个累加器的功能,将数组的每个值(从左到右)累加起来

执行箭头函数里的方法,返回一个布尔真假

some只要有,有返回真
换成every,只要不是全都符合,就返回假

和字符串中该方法几乎一样,
都是找到一个满足条件的值就不继续执行了,
返回满足条件值的下标,否则返回-1

for of,只能遍历数组的值,不能遍历对象
for in,可以遍历数组的下标,数组的值,或者对象的键值对

接下来总结一下,一般的循环用for,for...in,for...of和forEach
需要映射为新数组的用map,
需要筛选出想要的用filter,
数值需要进行累加的用reduce,
如果要找一些值用some和every,
如果想知道值的具体位置的可以用indexOf和lastIndexOf
对症下药,因地制宜,相信你会熟练掌握并准确应用了。

在循环中创建多维数组

【中文标题】在循环中创建多维数组【英文标题】:Create a multidimensional array in a loop 【发布时间】:2011-05-28 16:24:28 【问题描述】:

我正在尝试在循环中创建这样的数组:

$dataPoints = array(
    array('x' => 4321, 'y' => 2364),
    array('x' => 3452, 'y' => 4566),
    array('x' => 1245, 'y' => 3452),
    array('x' => 700, 'y' => 900), 
    array('x' => 900, 'y' => 700));

使用此代码

$dataPoints = array();    
$brands = array("COCACOLA","DellChannel","ebayfans","google",
    "microsoft","nikeplus","amazon"); 
foreach ($brands as $value) 
    $resp = GetTwitter($value);
    $dataPoints = array(
        "x"=>$resp['friends_count'],
        "y"=>$resp['statuses_count']);

但是当循环完成时,我的数组看起来像这样:

Array ( [x] => 24 [y] => 819 ) 

【问题讨论】:

【参考方案1】:

使用array_merge($array1,$array2) 使其变得简单,使用两个数组,一个用于迭代,另一个用于存储最终结果。签出代码。

$dataPoints = array();  
$dataPoint = array();  

$brands = array(
    "COCACOLA","DellChannel","ebayfans","google","microsoft","nikeplus","amazon"); 
foreach($brands as $value)
    $resp = GetTwitter($value);
    $dataPoint = array("x"=>$resp['friends_count'],"y"=>$resp ['statuses_count']);
    $dataPoints = array_merge($dataPoints,$dataPoint);

【讨论】:

【参考方案2】:

每次迭代都会覆盖 $dataPoints 变量,但应该向数组添加新元素...

$dataPoints[] = array("x"=>$resp['friends_count'],"y"=>$resp ['statuses_count']);

【讨论】:

【参考方案3】:

这是因为您在每个循环中将 $dataPoints 重新分配为一个新数组。

改成:

$dataPoints[] = array("x"=>$resp['friends_count'],"y"=>$resp ['statuses_count']);

这将在$dataPoints的末尾追加一个新数组

【讨论】:

以上是关于Array数组循环全解1的主要内容,如果未能解决你的问题,请参考以下文章

Java数组的复制全解

PHP数组循环的问题

使用数组的一组索引进行操作,而不在 php 中使用循环

使用'Each'方法在do循环中创建新数组

带有键的数组的 Twig for 循环

循环遍历数组 php