数组常用方法总结

1、Array.map() 循环

循环并对数组的每一项进行处理,但不改变原数组,有返回值

  1. let arr = [1, 2, 3, 4, 5]
  2. let newArr = arr.map(x => x*2)
  3. //arr= [1, 2, 3, 4, 5] 原数组保持不变
  4. //newArr = [2, 4, 6, 8, 10] 返回新数组
  1. let arr = [1,32,54,6,543];
  2. let res = arr.map(function(item,index,arr){
  3. return item*2;
  4. })

2、Array.forEach() 循环

会改变原数组,没有返回值

  1. arr.forEach(function(item,index,arr){
  2. //里面的function是一个回调函数,
  3. //item: 数组中的每一项;
  4. //index:item 对应的下标索引值
  5. //arr: 就是调用该方法的数组本身
  6. })

3、Array.filter() 过滤

过滤出符合的元素,并返回新的数组

  1. let arr = [1, 3, 5, 2, 4, 6];
  2. let res3 = arr.filter(function(item, index) {
  3. return item % 2 === 0;
  4. });
  5. console.log(res3);
  1. let arr = [1, 2, 3, 4, 5]
  2. const isBigEnough = value = value >= 3
  3. let newArr = arr.filter(isBigEnough )
  4. //newNum = [3, 4, 5] 满足条件的元素返回为一个新的数组

4、Array.every() 判断布尔值

判断数组中所有元素是否符合条件,当所有元素都符合时才返回true,只要有一个不符合就返回false.

  1. let arr = [1, 2, 3, 4, 5]
  2. const isLessThan4 = value => value < 4
  3. const isLessThan6 => value => value < 6
  4. arr.every(isLessThan4 ) //false
  5. arr.every(isLessThan6 ) //true

5、Array.some() 判断布尔值

判断数组中所有元素是否符合条件,只要有一个元素符合就返回true,只有在所有元素都不符合时才返回false.

  1. let arr= [1, 2, 3, 4, 5]
  2. const isLessThan4 = value => value < 4
  3. const isLessThan6 = value => value > 6
  4. arr.some(isLessThan4 ) //true
  5. arr.some(isLessThan6 ) //false
  1. let arr3 = [
  2. { name: "zs", age: 18, done: "notYet" },
  3. { name: "ls", age: 20, done: true },
  4. { name: "ww", age: 22, done: true }
  5. ];
  6. let res5 = arr3.some(function(item) {
  7. return item.done;
  8. });
  9. console.log(res5); //true

6、Array.push() 新增元素

在数组的后面新增元素,会改变数组的长度,返回的是改变后的数组长度

  1. let arr = [1, 2, 3, 4, 5]
  2. console.log(arr.push(9)) //6
  3. console.log(arr) //[1, 2, 3, 4, 5, 9]
  4. console.log(arr.length) //6

7、Array.pop()

在数组的后面删除元素,会改变数组的长度,返回的是被删除的元素

  1. let arr = [1, 2, 3, 4, 5]
  2. console.log(arr.pop()) //5
  3. console.log(arr) //[1, 2, 3, 4]
  4. console.log(arr.length) //4

8、Array.shift()

在数组的前面删除元素,会改变数组的长度,返回的是删除后的数组

  1. let arr = [1, 2, 3, 4, 5]
  2. arr.shift()
  3. console.log(arr) //[2, 3, 4, 5]
  4. console.log(arr.length) //4

9、Array.unshift()

在数组的前面添加元素,会改变数组的长度,返回的是新的数组

  1. let arr = [1, 2, 3, 4, 5]
  2. arr.unshift(6, 7)
  3. console.log(arr) //[6, 7, 1, 2, 3, 4, 5]
  4. console.log(arr.length) //7

10、Array.isArray()

判断是否是数组,返回的是布尔值

11、Array.concat()

将多个数组合并成一个数组

  1. let arr1 = [1, 2, 3]
  2. arr2 = [4, 5]
  3. let arr = arr1.concat(arr2)
  4. console.log(arr)//[1, 2, 3, 4, 5]

12、Array.join()

将数组中的元素通过指定的分隔符,以字符串的形式连接起来

  1. //将数组用 - 符号连接起来
  2. let arr = [1,2,3,4,5];
  3. let str = arr.join('-');
  4. console.log(str)//str = 1-2-3-4-5;

13、Array.toString()

将数组转化成字符串

  1. let arr = [1, 2, 3, 4, 5];
  2. let str = arr.toString()
  3. console.log(str)// 1,2,3,4,5

14、Array.splice(开始位置,删除个数,要替换的新元素)

实现增删改

  1. let arr = [1, 2, 3, 4, 5];
  2. let arr1 = arr.splice(2, 0 'haha')
  3. let arr2 = arr.splice(2, 3)
  4. let arr1 = arr.splice(2, 1 'haha')
  5. console.log(arr1) //[1, 2, 'haha', 3, 4, 5]新增一个元素
  6. console.log(arr2) //[1, 2] 删除三个元素
  7. console.log(arr3) //[1, 2, 'haha', 4, 5] 替换一个元素

15、Array.sort() 翻转数组

16、Array.indexOf() 查找元素在数组中第一次出现的位置

  1. if (arr.indexOf(ele) === -1){//说明元素不存在!!
  2. console.log('元素不存在!)
  3. } else {
  4. console.log(' 元素存在! ')
  5. }

数组方法参考自:这里这里


字符串常用方法总结

1、slice(start,end)

不包含end , start可负数

2、substr(start,length)

截取到length位, start可负数

3、substring(start,stop)

不包含stop, start 非负数

1. JavaScript中如何检测一个变量是一个String类型?请写出函数实现

function test(obj){
  return typeof(obj) == ‘String’;
}
test(234);
test(‘abc’);

2. 请用js去除字符串空格?

eg: var str =” 12 55 abc “;
str.replace(/\s/g,””); //所有空格
str.replace(^\s
,””); //前空格
str.replace(/\s*$/g.””); //后空格
str.trim(); //前后空格
str.trimLeft(); //前空格
str.trimRight(); //后空格

3.如何获取浏览器URL中查询字符串中的参数?

eg: var url = https://baidu.com?aa=10422828&bb=1;
a方案:
var str = location.search.substring(1).split(“&”);
var params = new Object();
for(var i=0;str.length;i++){
  params[str[i].splict(“=”)[0]] = unescape(str[i].splict(“=”)[1]); // unescape解码
}

b方案:
var str = location.href.split(“?”).split(“&”);
var obj ={};
for(var i=0;str.length;i++){
  var arg =str[i].split(“=”);
  obj[arg[0]]=arg[1];
}