JS之数组基础学习

数组的终极奥义

// console.log(Array.isArray(Array.prototype));

创建一个数组:

var fruits = ["Apple","Banana"];
console.log(fruits.length);  // 2

通过索引访问数组元素

var first = first[0]; // apple
var lase = first[1];   // banana

遍历一个数组

fruits.forEach(function (item,index,array){
    console.log(item,index);
});

添加元素到数组的末尾

var newLength = fruits.push("Orange");
// ["Apple", "Banana", "Orange"]

删除数组末尾的元素

var last = fruits.pop(); // remove Orange (from the end)
// ["Apple", "Banana"];

删除数组最前面的元素

var first = fruits.shift(); // remove Apple from the front
// ["Banana"];

添加到数组的前面

var newLength = fruits.unshift("Strawberry") // add to the front
// ["Strawberry", "Banana"];

找到某个元素在数组中的索引

var pos = fruits.indexOf("Banana");
// 1

通过索引删除某个元素

var removedItem = fruits.splice(pos, 1); // this is how to remove an item
// ["Strawberry", "Mango"]

连接两个或多个数组

var a = [1,2,3];
a.concat(4,5) //  1,2,3,4,5


1.forEach 的用法

var arr = ["1abc","2ac","3bb"];
arr.forEach(function (item,index,arr) {
    console.log(item,index);
});     // forEach方法中的function回调支持3个参数,第1个是遍历的数组内容;第2个是对应的数组索引,第3个是数组本身。
等价于:
var arr = ["wds","2ac","3bb"] ;
for (var i = 0; i < arr.length;i++){
    console.log(arr[i]);
}

var arr = ["1abc","2ac","3bb"];
arr.map(function (item,index,arr) {
    console.log(item,index);
});  //***************  -- map():指“映射”。[].map(); 基本用法跟forEach方法类似

2. filter 为“过滤”、“筛选”之意。指数组filter后,返回过滤后的新数组。用法跟map极为相似

array.filter(callback,[ thisObject]);

var data = [0, 1, 2, 3];
var arrayFilter = data.filter(function(item) {
   return  alert(item);
});
console.log(arrayFilter);

3. some 意指“某些”,指是否“某些项”合乎条件。与下面的 every算是好基友,every表示是否“每一项”都要靠谱

array.some(callback,[ thisObject]);
var scores = [5, 8, 3, 10];
var current = 11;

function higherThanCurrent(score) {
return score > current;
}
if (scores.every(higherThanCurrent)) {   //   跟some同样是返回Boolean值
console.log("朕准了!");
} 
else {
console.log("来人,拖出去斩了!");
}

if (scores.some(higherThanCurrent)) {  //some要求至少有1个值让callback返回true就可以          了。显然,8 > 7,因此scores.some(higherThanCurrent)值为true.
alert("通过");
}
else
alert("miss");

4. indexOf

string.indexOf(searchString, position)
array.indexOf(searchElement,[fromIndex])
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
返回整数索引值,如果没有匹配(严格匹配),返回-1. fromIndex可选,表示从这个位置开始搜索,
若缺省或格式不合要求,使用默认值0,发现使用字符串数值也是可以的,例如"3"和3都可以。

var data = [2, 5, 7, 3, 5];

console.log(data.indexOf(5, "a")); // 1 ("x"被忽略)
console.log(data.indexOf(5, "3")); // 4 (从3号位开始搜索)
console.log(data.indexOf(4)); // -1 (未找到)
console.log(data.indexOf("5")); // -1 (未找到,因为5 !== "5")

posted on 2017-02-15 15:54  最菜的就是你  阅读(168)  评论(0编辑  收藏  举报

导航