javascript--17-字符串方法-數組方法

字符串方法2

  1. indexOf 查找字符串 返回索引值 查找當前字符串的索引值 從左到右第一次出現的位置 如果沒有找到返回-1 第二個參數表示 從第幾個字符串後面開始找
var str ="124590"
  console.log(str.indexOf("9"));

結果是4

var str ="124590"
  console.log(str.indexOf("a"));

返回值是-1

var str ="124590"
  if(str.indexOf("1")){
      console.log("能找到");
  }else{
      console.log("不能找到");
  }

結果是不能找到 如果用if做判斷 要讓索引值判斷是否大於-1

var str ="124590"
  if(str.indexOf("1")>-1){
      console.log("能找到");
  }else{
      console.log("不能找到");
  }
var str ="1234590"
  console.log(str.indexOf("4",3));

結果是3 從第三個字符串往後找 返回的是字符串

var str ="1234590"
  console.log(str.indexOf("3",3));

結果是-1

  1. lastIndexOf 從右往左找 返回該字符串的索引值
var str ="1234590"
  console.log(str.lastIndexOf("9"));

結果是5

3.substring 返回一個字符串 第一個數字表示索引值 然後從該代表的字符串包括改字符串截取 字符數(個數) 的字符 和substr一樣

var str ="abcdefg";
  console.log(str.substring(0,4));//4代表從a包括a開始截取四個字符

結果是abcd 如果不寫第二個參數就是截取到最後

  1. slice 當第二個參數是正數時和substring一樣 不同的是 第二個參數可以寫負數 表示截取到倒數第幾個
var str ="abcdefg";
  console.log(str.slice(0,4));

結果是abcd

var str ="abcdefg";
  console.log(str.slice(0,-2));

結果是abcde

5.split 將字符串按照 指定的分隔符 切割成數組 第一個參數爲標識符 第二個參數爲切割個數 如果分隔符出現在字符串的開始或結尾,分別以空字符串開頭,結尾

var str ="abcdefg";
  console.log(str.split(""));

結果是["a", "b", "c", "d", "e", "f", "g"]

var str ="hello world how are you";
  console.log(str.split(" "));

結果是["hello", "world", "how", "are", "you"]

var str ="hello world how are you";
  console.log(str.split(" ",2));

結果是["hello", "world"]

var str= "helloworldnihao";
  var str2=str.split("o");
  console.log(str2);
  console.log(str2.join("o"));

第一個結果是["hell", "w", "rldniha", ""] 第二個結果是helloworldnihao

6.trim 清空兩側的空格

var str =" 你好 ";
  console.log(str.trim());

會清空兩側的空格 如果中間有空格不會清除 可用於input輸入框

數組方法

改變原數組

  1. shift:將第一個元素刪除並且返回刪除元素,空即爲undefined
  2. unshift:向數組開頭添加元素,並返回新的長度
  3. pop:刪除最後一個並返回刪除的元素
  4. push:向數組末尾添加元素,並返回新的長度
  5. reverse:顛倒數組順序
  6. sort:對數組排序
  7. splice:splice(start,length,item)刪,增,替換數組元素,返回被刪除數組,無刪除則不返回

不改變原數組

  1. concat:連接多個數組,返回新的數組
  2. join:將數組中所有元素以參數作爲分隔符放入一個字符
  3. slice:slice(start,end),返回選定元素
  4. map,filter,forEach,some,every等不改變原數組
  1. 創建數組
  • var arr = []; 字面量
  • var arr = new Array(1,2,3);構造函數 var arr = new Array(5)結果是[empty × 5]length: 5__proto__: Array(0)創建空數組 數組長度爲5
  • var arr = Array(1,2); 內建函數
  1. length 可讀可寫 第二個參數可以寫負數
var arr = [1,2,3,4,5,6,7,8];
  delete  arr[0];
  console.log(arr.length);

結果是8 留了個空位

var arr = [1,2,3,4,5,6,7,8];
 var arr =[];
  console.log(arr);

該操作 直接把一個新的空數組的地址 付給了arr 原有的數組不存在了

var arr = [1,2,3,4,5,6,7,8];
  arr.length =0;//可以改變
  console.log(arr);

這樣就變成空數組

  1. indexOf 沒有的爲-1
var arr = [1,2,3,4,5,6,7,8];
  console.log(arr.indexOf(6));

結果是5

var arr = [1,2,3,4,5,[3],6,7,8];
  console.log(arr.indexOf([3]));

結果爲-1 沒有數組[3] 是因爲[3]不等於[3]

基本類型和引用類型

  1. 數值 字符串 布爾值 undefined null 可以直接寫出來 比較簡單的數據爲基本類型 在比較的時候是直接按照值比較
  2. 對象 函數 數組 複雜的數據 按照值和地址比較
var a=[3]  a存的是[3]的地址並不是她本身  可以通過這個地址找到【3
var b =[3]  b不等於a
var a =[];//a存的是空數組的地址
  var b=a;//a的地址賦值給b
  a==b;

是a與b相等的

function t(stu) {
      stu.name ="lily";//此時stux指向同一個對象  按照地址 找到對象  改變名字
      stu = {name:"wangwu"};
  }
  var stu ={name:"lisi"};//stu存的是地址
  t(stu);//傳的是一個引用
  console.log(stu.name);  重新賦值  x沒有關係

結果是lily

var lisi =[3];//手動存地址
  var arr = [1,2,3,4,5,lisi,7,8];
  console.log(arr.indexOf(lisi));

結果是5

var lisi =[3];
  var arr = [1,2,"3",4,5,lisi,7,8];
  console.log(arr.indexOf(3));

結果是-1 找不到

var lisi =[3];
  var arr = [1,2,"3",4,5,lisi,7,8];
  console.log(arr.indexOf(7,-3));

結果是6

  1. concat 數組的拼接 返回一個新的數組 存儲的是引用類型爲地址
var arr =[1,2,3,4,5];
  var arr1 = [6,7,8];
  var arr2 = arr.concat(arr1,arr1);
  console.log(arr2);

結果是[1, 2, 3, 4, 5, 6, 7, 8, 6, 7, 8]

var lisi ={};
  var arr =[1,2,3,4,lisi];
  var arr1 = [6,7,8];
  var arr2 = arr.concat(arr1);
  lisi.age =18;
  console.log(arr2);

結果返回{}裏面有age 因爲lisi存的是一個地址 就算打印在前 改變lisi在後 打印的結果也會發生改變

var lisi ={};
  var arr =[1,2,3,[4]];
  var arr1 = [6,7,8];
  var arr2 = arr.concat(arr1);
  arr[3][0] = 10
  console.log(arr2);

結果數組裏面的值也變爲10

  1. join 數據拼接成字符串 返回新的字符串 不改變原數組 默認用逗號拼接 接受傳參爲拼接符
var arr =[1,2,3,4,56];
  var str =arr.join();
  console.log(str);

結果是1,2,3,4,56

var arr =[1,2,3,4,56];
  var str =arr.join("");
  console.log(str);

結果是123456

var arr =[1,2,3,4,56];
  var str =arr.join("+");
  console.log(str);

結果是1+2+3+4+56

  1. slice 提取數組的一部分 生成一個新的數組 不改變原有數組 從索引 取到索引 [)
var arr =[1,2,3,4,56];
  console.log(arr.slice(1,2));

結果爲2

數組元素的刪除和增加

  1. pop 刪除數組的最後一個元素 並且改變了原有數組 返回值爲刪除的那個元素 不能傳參
var arr =[1,2,3,4,5,6];
  arr.pop();
  console.log(arr);
var arr =[1,2,3,4,5,6];
  console.log( arr.pop());

結果是6

  1. shift 刪除數組的第一個元素 改變原數組
var arr =[1,2,3,4,5,6];
  arr.shift();
  console.log(arr);

結果刪除了1

var arr =[1,2,3,4,5,6];
  console.log(arr.shift());

返回值是1

var arr =[1,2,3,4,5,6];
  arr.shift();
  arr.shift();
  console.log(arr);

不會報錯 刪除1 2

  1. push 在末尾添加一個新元素 返回值是新數組的長度
var arr =[1,2,3,4,5,6];
  arr.push(7,8,9); //可以是任意數據類型
  console.log(arr);

結果是[1, 2, 3, 4, 5, 6, 7, 8, 9]

var arr =[1,2,3,4,5,6];
 console.log(arr.push(7,8,9));

結果是9

  1. unshift 在開始添加一個新元素 返回值是新數組的長度
var arr =[1,2,3,4,5,6];
 arr.unshift(1,2);
 console.log(arr);

結果是[1, 2, 1, 2, 3, 4, 5, 6]

<body>
<div id="box"></div>
</body>
<script>
  var oBox = document.getElementById("box");
  var stu = {name:"lisi",age:"19"};
  [].push.call(stu,oBox);//有些數組方法 對象可以借用一下
  console.log(stu);

結果是{0: div#box, name: "lisi", age: "19", length: 1}

  1. splice(index ,num ,item1 , item2)
  • index 從第幾個開始刪
  • num 刪除幾個 爲0 就是不刪除
  • item 要添加的新項目
var arr = [1,2,3,4,5];
arr.splice(2,1);
console.log(arr);

結果是[1, 2, 4, 5]

var arr = [1,2,3,4,5];
arr.splice(2,0,"hello");
console.log(arr);

結果是[1, 2, "hello", 3, 4, 5]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章