JS(Coursera):More On Arrays

Array

  • You’ll learn some advanced array functions

SORTING

array.sort()

  • Alphabetical order
var pets = ["Dog" , "Cat" , "Rabbit" , "Hamster"];
pets.sort();

按字母顺序

这里写图片描述

array.reverse()

这里写图片描述

Descending order

By combining sort() and reverse()

这里写图片描述

Finding an Element

array.indexOf(target)

这里写图片描述

元素不存在返回 -1

MORE
pass a second value to indexOf() to control where to start the search

array.indexOf(target , startPosition);

返回 startPosition 开始的第一个target的位置(index)

<script>
var pets=["Rabbit","Dog","Hamster","Dog","Rabbit","Rabbit","Cat","Hamster","Rabbit"];
var rabbitPositions=[], startSearchAt=0;
var target = "Rabbit";
do{
    foundAt=pets.indexOf(target , startSearchAt);
    if(foundAt != -1){
        startSearchAt = foundAt+1;
        rabbitPositions.push(foundAt);
    }
}while(foundAt != -1);
</script>

这里写图片描述

Finding Element Backwards

array.lastIndexOf(target)

starting from the last element in array

SLICE():不影响本体

  • Extract part of an array by array.slice(startPosition):
var pets=["Dog" , "Cat", "Rabbit" , "Hamster"];
var result = pets.slice(1);

这里写图片描述

  • You can also set where to stop , by array.slice(startPosition , endPosition):
//not include endPosition

var pets=["Dog" , "Cat" , "Rabbit", "Hamster"];
var result = pets.slice(1 , 3);

这里写图片描述

tips : chrome开发者工具 Console

SPLICE():影响本体

  • splice() is used when you want to remove element(s) anywhere from an array
  • array.splice(position , quantity)
  • splice() returns the removed element(s)
var pets=["Dog" , "Cat" , "Rabbit", "Hamster"];
var result = pets.splice(1 , 1);

remove
这里写图片描述

pets 会有影响

  • add sth anywhere in an array
    array.splice(position , 0 , element)
var pets=["Dog" , "Cat", "Hamster"];
var result = pets.splice(2, 0 ,"Rabbit");

add
result is [] (doesn’t return anything)

这里写图片描述

  • replace sth anywhere in an array
    array.splice(position , quantity , element(s))

    用 elements去替换从position开始的quantity个数目的元素。返回的是被替换下来的元素数组,数组大小为quantity,quantity与element(s)的大小没有关系。

var pets=["Dog" , "Cat", "Hamster"];
var result = pets.splice(1, 1 ,"Rabbit","Fish");

replace

这里写图片描述


Array Functions

  • You’ll learn some more advanced array functions

there are many , but look at these two

forEach()

var pets=["Dog" , "Cat" , "Rabbit", "Hamster"];
pets.forEach(alert);

you think forEach works

function forEach(theArray , fn){
    for(var i = 0 ; i<theArray.length ; i++)
    {
        fn(theArray[i] , i, theArray);
    }
}

wirte your function fn

var numbers = [1, 2, 3, 4, 5];
numbers.forEach( function(elem , idx , arr) {
    arr[idx]= elem * elem;
});
alert(numbers);

自定义函数,
elem代表numbers中的元素
idx为索引
arr为numbers数组

这里写图片描述

影响本体

map()

  • map(function)stores the result of each execution of function into an array it returns.
//how map works

function map(theArray , fn){

    var results=[];
    for(var i=0 ; i< theArray.length ; i++){
        results.push( fn(theArray[i] ,i , theArray));
    }
    return results;
}

write your own function

var square = function(e1){return e1 * e1;}
var numbers = [1,2,3,4,5];
var results = numbers.map(square);

不影响本体

这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值