js中数组,对象 的相关操作

1, reverse:将数组反序,原数组改变
var a = [1,2,3,4,5];
var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1]

2,sort(orderfunction):按指定的参数对数组进行排序,原数组改变 
var a = [5,4,3,2,1];
var b = a.sort(); //a:[1,2,3,4,5 ] b:[1,2,3,4,5]

function compare(a,b){return b-a};
B = a.sort(compare)  // [5,4,3,2,1]

3, slice(start,end):返回从原数组中指定开始下标到结束下标之间的项组成的新数组 ,不写数字,默认全部,原数组不变
var a = [1,2,3,4,5];
var b = a.slice(2,5); //a:[1,2,3,4,5] b:[3,4,5]

4, join(separator):将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符,原数组不变
var a = [1,2,3,4,5];
var b = a.join("|"); //a:[1,2,3,4,5] b:"1|2|3|4|5"

5,concat:返回一个新数组,是将参数添加到原数组中构成的,原数组不变
var a = [1,2,3,4,5];
var b = a.concat(6,7); //a:[1,2,3,4,5] b:[1,2,3,4,5,6,7]

var b = [...a, ...[6,7]] //a:[1,2,3,4,5] b:[1,2,3,4,5,6,7]

6,push:将参数添加到原数组末尾,并返回数组的长度 ,原数组改变
var a = [1,2,3,4,5];
var b = a.push(6,7); //a:[1,2,3,4,5,6,7] b:7

push.apply数组后面添加数组
var a = [1,2,3,4,5];
var b= [33,22,7,8];
a.push.apply(a,b); //a:[1,2,3,4,5,33,22,7,8]

7,  unshift:将参数添加到原数组开头,并返回数组的长度 
var a = [1,2,3,4,5];
var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5] b:7

8,  shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined 
var a = [6,1,2,3,4,5];
var b = a.shift(); //a:[1,2,3,4,5] b:6

9,  pop:删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined 
var a = [1,2,3,4,5];
var b = a.pop(); //a:[1,2,3,4] b:5

10, splice(start,deleteCount,val1,val2,...):从start位置开始删除deleteCount项,并从该位置起插入val1,val2,... 以数组形式返回删除掉的项 
var a = [1,2,3,4,5];
var b = a.splice(2,2,7,8,9); //a:[1,2,7,8,9,5] b:[3,4]
var b = a.splice(0,1); //同shift
a.splice(0,0,-2,-1); var b = a.length; //同unshift
var b = a.splice(a.length-1,1); //同pop
a.splice(a.length,0,6,7); var b = a.length; //同push

11,arr.includes(searchElement, fromIndex)目标,起始位置,默认从0开始,大于数组长度返回false. 为负数从倒数开始,如果大于数组长度从0开始

var a = [1,2,3,4,5];
a.includes(2) //true
a.includes(2, 2) //false
a.includes(2, -1) //false
a.includes(2, -6) //true

12,indexOf 查找子项在数组的位置(下标), 查找字符在字符串中的位置 stringObject.indexOf(searchvalue,fromindex)
参数 描述
searchvalue 必需。规定需检索的字符串值。
fromindex 可选的整数参数。规定在字符串中开始检索的位置。
它的合法取值是 0 到 stringObject.length - 1。
如省略该参数,则将从字符串的首字符开始检索。

var a = [1,2,2,3,423,3,4,5];
a.indexOf(2)  //1
‘asdfqwew’.indexOf(‘d’)  //2

13,lastIndexOf查找子项在数组最后出现的位置,默认从末尾开始查询,stringObject.lastIndexOf(searchvalue,fromindex)
参数 描述
searchvalue 必需。规定需检索的字符串值。
fromindex 可选的整数参数。规定在字符串中开始检索的位置。
它的合法取值是 0 到 stringObject.length - 1。
如省略该参数,则将从字符串的最后一个字符处开始检索。
14,reduce 数组求和array.reduce(callbackfn(previousValue, currentValue, currentIndex, array1), initialValue)
previousValue
通过上一次调用回调函数获得的值。如果向 reduce 方法提供 initialValue,则在首次调用函数时,previousValue 为 initialValue
currentValue
当前数组元素的值。
currentIndex
当前数组元素的数字索引。
array1
包含该元素的数组对象。
initialValue
可选。如果指定 initialValue,则它将用作初始值来启动累积。第一次调用 callbackfn 函数会将此值作为参数而非数组值提供。

var a = [1,2,3,4,5,6];
var num = a.reduce((prev, cur, index, array) => {
     return prev + cur;
})   // num = 21

var a = [1,2,3,4,5,6];
var num = a.reduce((prev, cur, index, array) => {
     return prev + cur;
} , 10) // num = 31  

15,Math.max(…Array) Math.min(..Array.)数组求最大值,最小值

var a = [1,3,2,5,11,43,4];
var max = Math.max(…a) //43
var min = Math.min(…a) //1

15, filter() 已数组形式返回通过筛选的项。 注意: filter() 不会对空数组进行检测。filter() 不会改变原始数组
var filteredArray = array.filter(callback, thisObject)   callback回调函数 thisObject 当前this指向,不写为null,指向全局window
callback(item, index, array) item 必填,当前项值 
index 选填,当前项下标     array 选填,当期元素属于的数组对象

var ages = [32, 33, 16, 40];
function get(item, index, array) {
  console.log(item, index, this, array, 222);
  return index > 0
};
var a = ages.filter(get, ages)
// 32 0 (4) [32, 33, 16, 40] (4) [32, 33, 16, 40] 222
// 33 1 (4) [32, 33, 16, 40] (4) [32, 33, 16, 40] 222
// 16 2 (4) [32, 33, 16, 40] (4) [32, 33, 16, 40] 222
// 40 3 (4) [32, 33, 16, 40] (4) [32, 33, 16, 40] 222

a的值,筛选下标  [33,16,40]

//使用箭头函数的情况
var a = ages.filter((item, index, array) => {
 console.log(item, index, array, this, 2222);
 return item > 30}
, ages)

a的值 [32,33,40]

// 32 0 (4) [32, 33, 16, 40] Window 2222
// 33 1 (4) [32, 33, 16, 40] Window 2222
// 16 2 (4) [32, 33, 16, 40] Window 2222
// 40 3 (4) [32, 33, 16, 40] Window 2222

var a = ages.some((item, index, array) => {
 console.log(item, index, array, this, 2222);
 return item > 30}
, ages) //true

var a = ages.every((item, index, array) => {
 console.log(item, index, array, this, 2222);
 return item > 30}
, ages) //false

var a = ages.map((item, index, array) => {
 console.log(item, index, array, this, 2222);
 return item + 10}
, ages) //[42, 43, 26, 50]

数组与对象操作方法的对比
//Array:
/*新建:*/var ary = new Array(); 或 var ary = [];
/*增加:*/ary.push(value);
/*删除:*/delete ary[n];
/*遍历:*/for ( var i=0 ; i < ary.length ; ++i ) ary[i];

//Object:
/*新建:*/var obj = new Object(); 或 var obj = {};
/*增加:*/obj[key] = value; (key为string)
/*删除:*/delete obj[key];
/*遍历:*/for ( var key in obj ) obj[key];
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值