var arr = ["Huawei","China","Mirror"];
同时JavaScript也支持 new Array 创建数组。但是建议使用上面的文本方式创建数组
var name = arr[0];
// name = Huawei
ps:数组的索引是从 0 开始的
var arr = ["Huawei","China","Mirror"];
document.getElementById("demo").innerHTML = arr ;
// 结果输出: Huawei,China,Refueling
var arr = ["Huawei","China","Mirror"];
arr.length;
// 结果:返回 3
由于arr索引是从零开始,而length数目计算是从1开始的 所以length-1 === 数组最后一个元素的下标索引
var arr[arr.length - 1] ;
// 结果返回 Mirror
var arr = ["Huawei","China","Mirror"];
var text = "<ul>";
for(i = 0 ; i < arr.length-1 ; i ++){
text += "<li>" + arr[i] + "</li>";
}
var arr = ["Huawei","China","Mirror"];
var text ;
text = "<ul>";
arr.forEach(myArr);
text += "</ul>";
function myArr(value){
text += "<li>" + value + "</li>";
}
var arr = ["Huawei","China","Mirror"];
arr.push("Refueling");
arr[arr.length] = ("Refueling");
// 或者
arr[x] = ("Refueling");
var arr = [];
arr[0] = "Huawei";
arr[1] = "China";
arr[2] = "Refueling";
var x = arr.length ; //返回 3
var y = arr[0]; //返回 Huawei
var arr = [];
arr["A"] = "Huawei";
arr["B"] = "China";
arr["C"] = "Refueling";
var x = arr.length ; // 返回 0
var y = arr[0] ; //返回 undefined
var arr = ["Huawei","China","Mirror"];
document.getElimentById("demo").innerHTML = arr.toString();
// 结果:Huawei,China,Mirror
var arr = ["Huawei","China","Mirror"];
document.getElimentById("demo").innerHTML = arr.join("&");
// 结果:Huawei&China&Mirror
var arr = ["Huawei","China","Mirror"];
arr.pop(); //删除最后一个元素 Mirror
pop():返回被删除的那个数
var arr = ["Huawei","China","Mirror"];
arr.push("Refueling"); // 添加 Refueling到数组中,并返回最新数组的长度
push():返回新数组的长度
var arr = ["Huawei","China","Mirror"];
arr.shift(); // 返回 Huawei
shift() 返回被移出(删除)的元素
var arr = ["Huawei","China","Mirror"];
arr.unshift("Refueling"); // 返回 新的数组长度 5
unshift():返回新的数组长度
var arr = ["Huawei","China","Mirror"];
delete arr[0]; //把 "Huawei" 改为 undefined
不建议使用delete运算符,可以使用pop() 或 shift() 代替 原因:后者的数组方法,会自动抹除数组索引,而delete则会保留索引并导致空洞
var arr = ["Huawei","China","Mirror"];
arr.splice(2,0,"Refueling","Hello");
第一个参数:定义添加新元素的位置 第二个参数:定义应删除多少元素 其余参数:定义要添加的新元素
var arr = ["Huawei","China","Mirror"];
arr.splice(0,1); // 删除 arr 数组中的第一个元素
第一个参数:定义新元素添加的元素 第二个参数:定义删除多个元素 其余参数: 被忽略,没有新元素添加
splice()会返回被删除的元素 而原数组的内容就会被修改
var str1 = ["Huawei","Refueling"];
var str2 = ["China","Refueling"];
var myStr = str1.concat(str2) ; // 连接 str1 和 str2
Array1.concat(Array2,……)
同样的,concat()也可以和数值合并 array1.concat([值,……])
var arr = ["Huawei","China","Refueling","Hello","World"];
var array = arr.slice(1);
var array = arr.slice(1,3);
第一个元素:裁剪的开始位置 第二个元素:裁剪的结束位置 若第二个元素被省略, 则从开始的位置截取到数组的最后一个元素
var arr = ["Huawei","China","Refueling","Hello","World"];
arr.sort();
// 结果:China,Hello,Huawei,Refueling,World
var arr = ["Huawei","China","Refueling","Hello","World"];
arr.reverse()
var arr = ["Huawei","China","Refueling","Hello","World"];
arr.sort();
arr.reverse();
function(a,b){return a-b}
当 sort() 函数比较两个值时,会将值发送到比较函数,并根据返回的值,对这些值进行排序。
<div>
<button onclick="myFunction1()">字母顺序</button>
<button onclick="myFunction2()">数字顺序</button>
<p id = "demo"></p>
</div>
<script>
var points = [40,100,1,5,25,10] ;
document.getElementById("demo").innerHTML = points ;
function myFuntion1() {
points.sort();
document.getElementById("demo").innerHTML = points ;
}
function myFuntion2() {
points.sort(function(a,b){return a - b}) ;
document.getElementById("demo").innerHTML = points ;
}
</script>
var points = [40,100,1,5,25,10] ;
points.sort(function(a,b){return 0.5 - Math.random()});
原理就是:0.5减去一个随机数
function myArrayMax(arr) {
return Math.max.apply(null,arr);
}
Math.max.apply([1,2,3]) === Math.max(1,2,3)
function myArrayMin(arr) {
return Math.min.apply([null,arr]);
}
Math.min.apply([1,2,3]) === Math.min(1,2,3)
function myArrayMax(arr) {
var len = arr.length ;
var max = -Infinity ; //最小的负值
while (len --) {
if (arr[len] > max) {
max = arr[len] ;
}
}
return max ;
}
function myArrayMin(arr) {
var len = arr.length ;
var min = Infinity ;
while (len --) {
if (arr[len] < min) {
min = arr[len];
}
}
return min ;
}
var cars = [
{name:"HUAWEI",age:"good"},
{name:"MI",age:"where"},
{name:"Java",age:"No:1"}
];
即使对象拥有不同数据类型的属性,sort()方法仍然可以对数组进行排序 解决方法就是利用比较函数对比属性值
cars.sort(function(a,b){return a.year - b.year});
通过比较函数,将属性中的属性值内容进行对比
var txt = "" ;
var number = [45,4,9,16,25] ;
numbers.forEach(myFunction) ;
function myFunction (value , index , array) {
txt += value + "<br>" ;
}
上述代码的作用:数组中每个值传递并调用函数
var number1 = [45,4,9,16,25] ;
var number2 = number1.map(myFunction) ;
function myFunction(value,index,array){
return value * 2 ; // 数组中的元素 * 2 并返回
}
var number = [45,4,9,16,25] ;
var over18 = number.filter(myFunction) ;
function myFunction(value , index , array){
return value > 18 ; // 返回大于18的数组元素并组成一个新数组
}
var number = [45,4,9,16,25] ;
var sum = number.reduce(myFunction) ;
function myFunction(total , value , index , array){
return total + value ;
}
reduce():方法能够接收一个初始值
var number = [45,4,9,16,25] ;
var allOver18 = number.every(myFunction) ;
function myFunction(value , index , array) {
return value > 18 ;
}
var number = [45,4,9,16,25] ;
var someOver18 = number.some(myFunction) ;
function myFunction(value , index , array) {
return value > 18 ;
}
var number = [45,4,9,16,25] ;
var a = number.indexOf(45);
array.indexOf(item,start) item:必须,要检索的项目 start:可选,检索的起点
未找到项目,返回 -1 如果搜索的内容出现多次,则返回第一个出现的位置
var number = [45,4,9,16,25] ;
var first = number.find(myFunction) ;
function myFunction(value , index , array) {
return value > 18 ;
}
var number = [45,4,9,16,25] ;
var first = number.findIndex(myFunction) ;
function myFunction(value , index , array){
return value > 18 ;
}