无标题文章

数组

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;
});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容