无标题文章

2017-09-02  本文已影响0人  xu9025476

数组

var myArray = ["good",123];     创建一个包含 字符串 和 数字 的数组 myArray。
var ourArray = [["the universe", 42], ["everything", 101010]];     也可以在数组中包含其他数组这被称为一个多维数组。


可以把 多维 数组看作成是一个 数组中的数组。arr[i][j]   i是第几个数组j是第几个数组中的第几个元素
例如
var arr = [
    [1,2,3],
    [4,5,6],
    [7,8,9],
    [[10,11,12], 13, 14]
];
arr[0]; // 等于 [1,2,3]
arr[1][2]; // 等于 6
arr[3][0][1]; // 等于 11

.unshift() 接受把一个或多个参数,并把它“推”入到数组的头部。
.push() 接受把一个或多个参数,并把它“推”入到数组的末尾。
var arr = [1,2,3];
arr.push(4);
// 现在arr的值为 [1,2,3,4]


.shift()函数用来“抛出”一个数组第一位的值
.pop() 函数用来“抛出”一个数组末尾的值。我们可以把这个“抛出”的值赋给一个变量存储起来。
var oneDown = [1, 4, 6].pop();
现在 oneDown 的值为 6 ,数组变成了 [1, 4]。


map方法迭代数组,这个方法不会改变原始数组
var oldArray = [1,2,3,4,5];
var timesFourArray = oldArray.map(function(val){  参数val是数组中元素的值
  return val * 4;   返回 4 8 12 16 20
});

reduce 方法迭代数组,并且把它累积到一个值中。
var array = [4,5,6,7,8];
var singleVal = 0;
singleVal = array.reduce(function(CalculatedVal, currentVal){  function(CalculatedVal, currentVal)这个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值,CalculatedVal为数组中的第一项,currentVal为第二项
  return previousVal+currentVal;   返回 array 中的所有值相加的值 CalculatedVal=4+5=9, 9+6=15, 15+7=22, 22+8=30
});

filter方法迭代数组,并且按给出的条件过滤出符合的元素。不会改变原始数组。
var oldArray = [4,5,6,7,8];
var newArray = oldArray.filter(function(val){
  return val<6;  返回数组中小于6的项,移除数组中大于等于6的项
});

sort 方法对数组中的元素进行排序。
var array = [1, 12, 21, 2];
array.sort(function(a, b) {    function(a, b)为一个比较函数,sort 可以把比较函数作为参数传入
  return a - b;    按照从小到大的顺序进行排列,return b-a 为从大到小
});

reverse 方法来翻转数组 (改变自身)
var myArray = [1, 2, 3];
myArray.reverse();   结果myArray 变成了 [3, 2, 1]

concat 方法可以用来合并数组
var oldArray = [1,2,3];
var newArray = [];
var concatMe = [4,5,6];
newArray = oldArray.concat(concatMe);   将 concatMe 拼接到 oldArray 后面


split 方法按指定分隔符将字符串分割为数组。
var string = "Split me into an array";
var array = string.split(" ");    按照空格" "进行分割


join 方法来把数组转换成字符串
var veggies = ["Celery", "Radish", "Carrot", "Potato"];
var salad = veggies.join(" and ");  用指定的连接符" and "来连接起来
console.log(salad);    输出"Celery and Radish and Carrot and Potato" 


slice() 方法可从已有的数组/字符串中返回选定的元素。 该方法并不会修改数组/字符串
array.slice(start,end)      包括start,不包括end
string.slice(start,end)
参数描述start必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。end可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。


splice() 方法向数组中添加/删除项目,然后返回被删除的项目。 该方法会改变原始数组。
array.splice(index,howmany,item1,.....,itemX)
参数描述index必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。howmany必需。要删除的项目数量。如果设置为 0,则不会删除项目。item1, ..., itemX可选。向数组添加的新项目。


indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
string.indexOf(searchvalue,fromindex)
searchvalue 必需。规定需检索的字符串值。
fromindex   可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 string.length - 1。如省略该参数,则将从字符串的首字符开始检索。
如果要检索的字符串值没有出现,则该方法返回 -1。
var str="Hello world!"
document.write(str.indexOf("Hello") + "<br />")
document.write(str.indexOf("World") + "<br />")
document.write(str.indexOf("world"))
//0    -1     6


排序
arr.sort()   默认排序顺序是根据字符串Unicode码点
var fruit = ['cherries', 'apples', 'bananas'];
fruit.sort(); 
// ['apples', 'bananas', 'cherries']

arr.sort(compareFunction)   
如果指明了 compareFunction ,那么数组会按照调用该函数的返回值排序。即 a 和 b 是两个将要被比较的元素:
  ● 如果 compareFunction(a, b) 小于 0 ,那么 a 会被排列到 b 之前;
  ● 如果 compareFunction(a, b) 等于 0 , a 和 b 的相对位置不变
  ● 如果 compareFunction(a, b) 大于 0 , b 会被排列到 a 之前。
  ● function compare(a, b) {
  if (a is less than b by some ordering criterion) {
    return -1;
  }
  if (a is greater than b by the ordering criterion) {
    return 1;
  }
  // a must be equal to b
  return 0;
}
如果比较数字,
function compareNumbers(a, b) {    升序排列
  return a - b;
}
arr.sort(compareNumbers)
或者
arr.sort(function(a, b) {
  return a - b;
});
上一篇下一篇

猜你喜欢

热点阅读