javascript 一02數組

數組

建立一個數組

var arry = [];
var arry = ['數據1','數據2','數據3','數據4','數據5']
// -------
var arry = new Array()
var arry = new Array(1,2,3,4)
// -------
//判斷是不是數組 
console.log(Array.isArray(arry))

數組的添加

var arr = [1,2,3,4]
// 在末尾添加一個新的元素,
arr[arr.lenght] = 5
// 或者 push
arr.push(6,7) 
// 在首位添加一個新元素 
arr.unshift(-1)

數組的刪除

arr.pop();
//刪除數組中的第一值 
arr.shift();
// 根據下標進行刪除
arr.splice(5,3)
//索引爲5後的三個元素刪除 
arr.splice(5,0 ,2,3,4)
從索引5插入元素,2,3,4。0表明插入,splice(數組的角標,刪除長度,.... 添加的元素 )

字符串與數組的相互轉化

split數組

var text = "若是每小時說一句情話令我詞窮大概須要大概317年";
    var words = text.split("");
    for (var i = 0; i < words.length; ++i) {
      console.log(i + words[i]);
    }

join() toString()函數

var names = ["David", "Cynthia", "Raymond", "Clayton", "Mike", "Jennifer"];
 var namestr = names.join();
 console.log(namestr);
// name.toString();

淺拷貝AD深拷貝

淺拷貝並無將一個數組的指向改變,當numer[0] 棧內存改變後,numbers [0]由於指向沒有改變,因此numbers [0]的值也會變。編碼

var numer = [];
    for (var i = 0; i < 10; i++) {
      numer[i] = i + 1;
    }
    var numbers = numer;
    numer[0] = 400;
    console.log(numbers[0]);

深拷貝可使用copy方法來複制一個數組code

function copy(arry1,arry2){
 for(var i = 0; i<arry1.lenght;i++){
  arr2[i] = arr1[i]; 
 }
}

var numer = [];
    for (var i = 0; i < 10; i++) {
      numer[i] = i + 1;
    }
var numbers = [];
    copy(numer, numbers);
    numer[0] = 400;
    console.log(numbers[0]);

數組合並

var arryData1 = [1,2,3,4]
var arryData2 = [5,6,7,8]
var data = arryData1.concat(arryData2)

數組的迭代

var number = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
var isEver = function (x){
  // 若是值爲2的倍數就返回true
  console.log(x)
  //不然就返回false 
  return (x % 2 == 0) 
}
//every方法會迭代數組中的每一個元素,直到返回false
// number.every(isEver)
// some 方法會將數組中的每個元素都進行一次迭代。直到函數返回true:
// number.some(isEver);

若是是要進行將全部項進行輸出,咱們須要循環,或者forEach對象

numbers.forEach(function(x){
console.log((x % 2 == 0));
});
//方法一
var myMap = numbers.map(isEven);  
// 方法二
var evenNumbers = numbers.filter(isEven); 

map方法會將數組中的沒有一個元素都給定一個新的元素數組,
filter對數組中的每一項運行給定函數,返回該函數會返回true的項組成的數組排序

排序

var arry = [1,2,3,4,5,6,7,8,9]
 // 反序輸出數組
 arry.reverse()
 sort() 方法用於對數組的元素進行排序
 var arry= [1,2,3,4,5,6,7,11,15]
 console.log(arry.sort()) //[1, 11, 15, 2, 3, 4, 5, 6, 7]

sort() 是按照字符編碼的順序進行排序。首先應把數組的元素都轉換成字符串,以便進行比較。
// 咱們將建立一個數組,並按字母順序進行排序:索引

var arryName = [
'ZhangSan',
'LiSi',
'WangErXiao',
'LiErGou',
GouDan'
];
console.log(arryName.sort()) 
// ["GouDan", "LiErGou", "LiSi", "WangErXiao", "ZhangSan"]

若 a 小於 b,在排序後的數組中 a 應該出如今 b 以前,則返回一個小於 0 的值。
若 a 等於 b,則返回 0。
若 a 大於 b,則返回一個大於 0 的值。內存

var arry= [1,22,3,4,51,96,7,11,15]
function compare(a, b) {
  if (a < b) {
    return -1;
  }
  if (a > b) {
    return 1;
  }
// a必須等於
  return 0;
}
arry.sort(compare); //[1, 3, 4, 7, 11, 15, 22, 51, 96]

// 應用,例如咱們一個數組裏面有張三,李四,王二狗三人的我的信息,如今要按照年齡排序字符串

var arry = [
      { name: "ZhangSan", age: 18 },
      { name: "LiSi", age: 35 },
      { name: "WangErXiao", age: 30 },
    ];
    function compare(a, b) {
      if (a.age < b.age) {
        return -1;
      }
      if (a.age > b.age) {
        return 1;
      }
      // a必須等於
      return 0;
    }
console.log(arry.sort(compare)); 
 // 0: {name: "ZhangSan", age: 18} 1: {name: "WangErXiao", age: 30} 2: {name: "LiSi", age: 35}

搜索

var arry = [1,2,3,4,5,6,7,8,9,10];
var index = arry.indexOf(10);
console.log(index,'返回下角標')

對象數組

相關文章
相關標籤/搜索