认识数组主要从以下几个方面去认识,一:数组具备什么样的特性,二:它能做什么,三:它具备哪些常用的api方法

          //数组的原始表示方式
/*
数组的特性:1有长度,2以0开头
*/
var arr1 = new Array(1,2,5,4);//等价于 var arr1 = [1,2,3,4];
console.log("arr1="+arr1,"arr1的长度"+arr1.length,"arr1[0]="+arr1[0],"arr1[1]="+arr1[1]);
//1:向数组中添加元素
arr1[4] = "b";
console.log("arr1="+arr1);
//2:利用push()向数组末尾添加一个元素
arr1.push("xixi");
console.log(arr1);//[1, 2, 3, 4, "b", "xixi"]
//3:删除数组的最后一个元素
arr1.pop();
console.log(arr1);//[1, 2, 3, 4, "b"]
//4:向数组中首位添加一个数字
arr1.unshift("哈哈");
console.log(arr1);//["哈哈", 1, 2, 3, 4, "b"]
//5:删除数组中的第一个
arr1.shift();//删除数组中的第一个
console.log(arr1);//[1, 2, 3, 4, "b"]
/*6:判断该数组是否是某个对象*/
if(arr1 instanceof Array){
console.log("arr1是存在于Array对象所造出来的");//true
};
//7将数组变成字符串
arr1.toString();//数组会变成以","分隔的字符串
console.log("arr1变成字符串:"+arr1);//arr1变成字符串:1,2,3,4,b
          //8 delete arr1[0]
          delete arr1[0]; //会删除数组0的位置,但arr[0]=undefined,数组的整个长度不变

  以上主要讲到了数组两种表示方法,var arr = new Array()或者 var arr = [];数组索引由下标以0开始索引,具有长度length属性。

  数组的增删方法:push(向数组的最后一个添加),pop()删除数组的最后一个元素,shift()删除数组的第一个元素,unshift()向数组的第一个值添加。

  A instanceof  B  :主要是判断A是否由B对象。

  

  判断一个数组中元素中所在的位置,arr.indexOf("1"),如该元素"1"所在数组0位置,则会返回0,如该元素不存在数组中,则返回-1

          var bgColor = ["red","green","blue"];
var numArr = bgColor.valueOf();
console.log(numArr);
var t = bgColor.indexOf("green");//返回一个
console.log("green所在数组中的位置:"+t); var b = bgColor.join(",");//将数组以,分隔
console.log(b);//red,green,blue //排序
arr1.sort(function(a,b){
return b-a;//如果b-a>0 则以倒序,从大到小的方式排列,如b-a<0,则以小到大的方式排列
});
function compare(a,b){
if(a<b){
return 1;
}else if(a>b){
return -1
}else{
return 0;
}
};
console.log("compare="+arr1.sort(compare));
console.log(arr1);
//倒序reverse
arr1.reverse();//倒序
console.log("reverse后数组的值:"+arr1); //concat()方法,连接连个数组
var strArr1 = ["red","green","blue"];
var strArr2 = ["1","2","3"];
var newStr = strArr1.concat(strArr2);
var newStr2 = strArr1.concat("ss",["呵呵","嘿嘿"]);
console.log("concat"+newStr2);
console.log(newStr); //数组中的slice方法
//slice(a),当只有一个参数时,则以该位置开始,以数组的最后一个长度结束
//slice(a,b)当有两个参数时,以a为开始,b为结束
var strArr1_1 = strArr1.slice(1);
var strArr1_2 = strArr1.slice(2);
console.log(strArr1_1);//["green", "blue"]
console.log(strArr1_2);//["blue"]
var strArr1_3 = strArr1.slice(1,3);
console.log(strArr1_3);//["green", "blue"]
console.log("=====slice(-1)=====");
var strArr1_31 = strArr1.slice(-1);//slice(a)----当为一个参数时且为负数,则从右往左-1,代表一个,-2代表2个
console.log(strArr1_31);
console.log("=====slice(-1)=====");
console.log("=====slice(-2,-1)=====");
var strArr1_32 = strArr1.slice(-2,-1);
console.log(strArr1_32);//green
console.log("====slice(-2,-1)===");
//splice(start,end)截取以start开头,以end结束
var strArr1_4 = strArr1.splice(0,1);
console.log("strArr1_4 "+strArr1_4);//["red"]
console.log(strArr1);
var strArr1_5 = strArr1.splice(1,2);
console.log(strArr1_5);
var strArr1_6 = strArr1.splice(-1,2);
console.log(strArr1);
console.log(strArr1_6); //indexOf("xxx")返回该元素下标所在数组中的位置 var t = newStr2.indexOf("ss");
console.log(t);//3 var strArrs = ["平安夜","没有苹果吃","好悲剧"];
var number = [1,2,4,5,6,8,9,3];
/*
strArrs.forEach(function(a,b){
a:数组中具体的值
b:为索引
})
*/
strArrs.forEach(function(value,i){
console.log(value+"===="+i);
});
strArrs.forEach(function(item,index,arry){
//console.log(item);//具体元素
//console.log(index);
console.log(index);//索引下标值
});
//map 返回运行中的每一个值
var tnum = number.map(function(value,i){
return value*2;
});
console.log("tnum==="+tnum);//tnum===2,4,8,10,12,16,18,6
var filter = number.filter(function(value,i,arr){
return value>5;
});
console.log(filter);//[6, 8, 9]
var sum = number.reduce(function(prev,next,index,arr){
//console.log(prev);
//console.log(next);
return prev*next
});
console.log("sum="+sum);

  关于slice():

var arr = ["a","b","c","d"]
undefined
arr.slice(0,2)
["a", "b"]
arr
["a", "b", "c", "d"]
arr.slice(-1)
["d"]
arr.slice(1,2)
["b"]
arr.slice(1,3)
["b", "c"]
arr.slice(-1,3)
[]
arr
["a", "b", "c", "d"]

关于数组Arry的一些基本认识的更多相关文章

  1. 数组(Arry)几个常用方法的详解

    join() 方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. arrayObject.join(separator)separator 可选.指定要使用的分隔符.如果省略 ...

  2. 数组Arry的随机排序

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  3. ruby中数组的常用方法----例子

    #初始化 a = Array.new p a #=>[] a = Array.new(5) p a #=>[nil, nil, nil, nil, nil] a = Array.new(5 ...

  4. c语言中数组相关问题

    c语言中数组相关问题: 1.数组基本定义: 相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标.组成数组 ...

  5. 【java】一维数组

    数组概念: 同一种类型数据的集合,实际数组也是一个容器. 定义方式: //定义方法1:元素类型 [] 数组名 =new 元素类型 [数组元素个数或数组长度] 如 int [] arry =new in ...

  6. java中 列表,集合,数组之间的转换

    java中 列表,集合,数组之间的转换 java中 列表,集合,数组之间的转换 java中 列表,集合,数组之间的转换 List和Set都是接口,它们继承Collection(集合),集合里面任何数据 ...

  7. Java 中数组的遍历方式

    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java 语言中提供的数组是用来存储固定大小的同类型元素. 今天我们就来说一下在java中遍历数组都有哪几 ...

  8. java基本类型、数组、和枚举类型

    开始之前先吐槽一下,学艺不精,面试要吃大亏,出来混迟早要还的. 别的不说了,从零开始复习基础知识 1.标识符和关键字 意义:标识符用于对变量.类.和方法的命名.规范的标识符命名可以提高程序的可读取性. ...

  9. Javascript中数组的定义和常见使用方法

    一.定义数组 1.定义数组 var arry=[1,2,'小名',false] //var 数组名=[值1,值2,...] 2.设置数组长度 arry.length=10 //数组长度设置为10 二. ...

随机推荐

  1. sqldeveloper

    阅读文档:e12152-08 preferences 首选项,参数 panes 窗格 tabs 标签,选项卡 pin 别针,钉住 detach,move,dock 分离,移动,停靠 find data ...

  2. Head First设计模式之装饰者模式(Decorator Pattern)

    前言: 本节将深度讨论继承滥用问题,将会学到使用对象组合的方式,在运行时装饰类,在不修改任何底层代码的情况下,给对象赋予新的职责. 1.    基本需求:咖啡连锁店业务扩张需要重新设计订单系统 背景: ...

  3. 支持无限精度无限大数的类BigNumber实现

    介绍 本篇是MathAssist的第二篇,在前言中粗略地展示了MathAssist的“计算和证明”能力,本篇开始将详细介绍其实现原理. 从计算开始说起,要实现任意大数的计算器首先得有一个类支持大数运算 ...

  4. 自动化运维:flask-bootstrap + highstock整合

    1.在flask-bootstrap的base.html模板中加载highstock.js      以下是base.html的源码中,调用js文件的例子. 文件路径:python2.7/site-p ...

  5. 使用curl命令获取文件下载速度

    使用curl可以下载网络内容,那如何获取curl下载时的下载速度呢,使用下面的命令即可: # curl -Lo /dev/null -skw "%{speed_download}\n&quo ...

  6. HoloLens外包团队:HoloLens有一个严重缺陷,但微软并不想改

    微软的HoloLens自公布以来,几乎获得了一边倒的赞美声.它使用了增强现实(AR)技术,在现实世界中叠加一层虚拟影像,能让人仿佛置身魔法世界.但从最新的Hololens硬件体验上看,它可能有一个致使 ...

  7. 【Jersey】基于Jersey构建Restful Web应用

    环境说明 java: 1.6: tomcat: 6.0.48: Jersey:1.18: Jersey介绍 主要用于构建基于Restful的Web程序: 构建基于Maven的Javaweb程序 说明: ...

  8. [SI]source insight使用

    1. 快捷键 Ctrl+O: 工程中查找需要的文件如imx.c Ctrl+F: 当前文件查找字符串,然后Alt+W(hole)可以列出所有找到的位置 Ctrl+/:可以在当前project中查找字符串 ...

  9. Mysql5.5源码安装步骤笔记记录

    1.cmake软件的安装wget https://cmake.org/files/v3.5/cmake-3.5.0-rc3.tar.gztar xf cmake-3.5.0.tar.gzcd cmak ...

  10. 高阶c++

    模板就是宏.模板能不能再往一步? http://perilla.codeplex.com/ enhanced c++ template grammar: rule 1: c++ identifier ...