超好用JS数组与对象操作(包含最新用法)

项目开发中常用的数组集合操作,每种方法列出一种。在精不在多!

//下面是mock数据虚拟数据,是为了让大家清楚这几种情况下是怎么使用的
const objSend={
“1038”: [{
“category_id”: 10141,
“category_name”: “鞋靴”,
“parent_id”: 1038
},
{
“category_id”: 10140,
“category_name”: “配饰”,
“parent_id”: 1038
},
{
“category_id”: 10139,
“category_name”: “饰品”,
“parent_id”: 1038
},
{
“category_id”: 10137,
“category_name”: “服饰”,
“parent_id”: 1038
},
{
“category_id”: 10136,
“category_name”: “包包”,
“parent_id”: 1038
}
],
“1032”: [{
“category_id”: 10130,
“category_name”: “坚果炒货”,
“parent_id”: 1032
},
{
“category_id”: 10129,
“category_name”: “薯片膨化”,
“parent_id”: 1032
},
{
“category_id”: 10128,
“category_name”: “方便食品”,
“parent_id”: 1032
},
{
“category_id”: 10127,
“category_name”: “乳制品”,
“parent_id”: 1032
},
{
“category_id”: 10126,
“category_name”: “糖果巧克力”,
“parent_id”: 1032
},
{
“category_id”: 10125,
“category_name”: “面包饼干”,
“parent_id”: 1032
},
{
“category_id”: 10072,
“category_name”: “饮料”,
“parent_id”: 1032
},
{
“category_id”: 10068,
“category_name”: “酒水”,
“parent_id”: 1032
},
{
“category_id”: 10048,
“category_name”: “休闲食品”,
“parent_id”: 1032
},
{
“category_id”: 10047,
“category_name”: “冲调茶饮”,
“parent_id”: 1032
}
],
“1031”: []
}
//纯对象(也叫数组对象)

const arrObject = [{key:“鞋靴”,value:10141},{key:’'休闲食品",value:10048},{key:“冲调茶饮”,value:10047}];//对象数组

const arrArray1 = [10141,10142,10143,10144];//普通一维数组1

const arrArray2 = [1038,1039,1040,1041,10141];//普通一维数组2

//主题方法部分====正文开始

1,数组合并
concat
例子:
let newArr = arrArray1.concat(arrArray2);

2,数组的差集
filter+some
例子:
let newArr = arrObject.filter(item => !arrArray2.some(ele => ele === item.value))

3,数组的交集
filter+includes
例子:
let newArr = arrArray1.filter(item => arrArray2.includes(ele))

4,数组的并集
concat+filter+includes
例子:
let newArr = arrArray1.concat(arrArray2.filter(item => !arrArray1.includes(item)))

5,数组的去重(高性能)
set+Array
例子:
let set = new Set(arrArray1)//去掉重复数据
let newArr = Array.from(set);//将set处理成数组

6,某个值置顶
unshift+splice
例子:
let newArr = arrObject.unshift(arrObject.splice(i, 1)[0]);

7,批量置顶
map+unshift+splice
例子:
let newArr = arrObject.map(item => {
return arrObject.unshift(arrObject.splice(arrObject.findIndex(fruit => fruit.primary_id === item), 1)[0]);
});

8,对象与数组交互处理
keys+forEach
例子
Object.keys(objSend).forEach(box => {
objSend[box].filter(item => {
arrObject.every(ele => ele.value === item.category_id)
)}
)}

9,判断当前值在普通数组中的坐标
indexOf
例子

10,判断当前值在对象数组中的坐标
findIndex
例子

有时间继续加,欢迎补充和提问

原创文章纯手打,如果你觉得有用,就点个赞吧,非常感谢!
共勉~

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值