js 处理数据常用方法

1、截取数组前几个

let uniqueArr = [
    {name: 'a',id: 1},
    {name: 'a1',id: 2},
    {name: 'a2',id: 3},
    {name: 'a3',id: 4},
    {name: 'a12',id: 5},
    {name: 'a11',id: 6},
    {name: 'a11q',id: 17},
    {name: 'a1235',id: 18},
 ]
const resultList = uniqueArr.slice(0, 5)
console.log(resultList)

2、json 数组去重

let arr = [
    {name: 'abc', id: 1231},
    {name: 'abc1', id: 1232},
    {name: 'abc2', id: 1233},
    {name: 'abc22', id: 1234},
    {name: 'abc', id: 1231}, // 重复的对象
    {name: 'abc44', id: 1235},
];

// 创建一个Map来跟踪已经遇到的name和id的组合
let seen = new Map();

// 遍历数组,将不重复的对象放入新数组中
let uniqueArr = arr.reduce((accumulator, item) => {
    // 使用name和id的组合作为Map的键
    let key = `${item.name}_${item.id}`;
    // 如果这个组合还没有在Map中,则添加到Map中,并将对象添加到累积数组中
    if (!seen.has(key)) {
        seen.set(key, true);
        accumulator.push(item);
    }
    return accumulator;
}, []); // 初始的累积数组为空数组

console.log(uniqueArr);
let arr = [
    {name: 'abc', id: 1231},
    {name: 'abc1', id: 1232},
    {name: 'abc2', id: 1233},
    {name: 'abc22', id: 1234},
    {name: 'abc', id: 1231}, // 重复的对象
    {name: 'abc44', id: 1235},
];

// 创建一个Set来跟踪已经遇到的name和id的组合
let seen = new Set();

// 使用filter和Set来去除重复的对象
let uniqueArr = arr.filter(item => {
    // 使用name和id的组合作为Set的键
    let key = `${item.name}_${item.id}`;
    // 如果这个组合还没有在Set中,则添加它并返回true(保留在结果数组中)
    // 否则返回false(从结果数组中移除)
    return !seen.has(key) && seen.add(key);
});

console.log(uniqueArr);
var arr1 = [
{name:'a',age:1},
{name:'aa',age:2},
{name:'aaa',age:3},
{name:'a',age:1},
{name:'aa',age:2}
];
var obj = {};
var newArr = arr1.reduce((total,current)=>{
    obj[current.name]?"":obj[current.name] = true && total.push(current);
    return total;
},[]);
console.log(newArr);
var arr = [2, 3, 4, 5, 5, 4, 3, 2, 1];
var arr2 =[...new Set(arr)];
console.log(arr2);//[2, 3, 4, 5, 1]

3、对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组

var arr = [1,3,5,7,9,11];
var arr2 = arr.map((item,index)=>{
    return item+=2
});
console.log(arr2);//[3, 5, 7, 9, 11, 13]

4、过滤 ,数组中的每一项运行给定函数,返回满足过滤条件组成的数组

var arr = [1,3,5,7,9,11];
var arr2 = arr.filter((item,index)=>{
    return item%3 == 0
});
console.log(arr2);//[3, 9]

5、 判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true

var arr = [1,3,5,7,9,11];
var tOrf = arr.every(item=>{
    return item > 2
});
var tOrf1 = arr.every(item=>{
    return item < 12
});
console.log(tOrf);//false
console.log(tOrf1);// true

6、判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true 

var arr = [1,3,5,7,9,11];
var tOrf = arr.some(item=>{
    return item > 10
});
var tOrf1 = arr.some(item=>{
    return item < 0
});
console.log(tOrf);// true
console.log(tOrf1);// false

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值