美文网首页
数组及对象实用方法总结

数组及对象实用方法总结

作者: Melantha_CHEN | 来源:发表于2019-07-04 14:04 被阅读0次

在项目中经常需要处理数据,经常需要操作数组和对象, 且正确使用reduce能够节省很多不必要的代码

1. 造假数据,例如数组

1.1 使用repeat方法:

'abc'.repeat(3).split('')
// ["a", "b", "c", "a", "b", "c", "a", "b", "c"]

1.2 使用fill方法:

Array(5).fill('abc')
// ["abc", "abc", "abc", "abc", "abc"]
2. 统计数组中相同项出现的次数:
const arr = ['mo', 'melantha', 'mo', 'nian', 'chen', 'melantha'];

const nameArr = arr.reduce((prev, name) => {
    prev[name]  = prev[name] ? ++prev[name] : 1;
    return prev
}, {});
//  {mo: 2, melantha: 2, nian: 1, chen: 1}
3. 把数组中按相同元素归类: eg: 把dateArr数组中的日期,出现在同一天的进行归类
const dateArr = [
    {
        date: '2019-06-12',
        count: 5
    },
    {
        date: '2019-06-13',
        count: 4
    },
    {
        date: '2019-05-12',
        count: 3
    },
    {
        date: '2019-06-12',
        count: 8
    },
    {
        date: '2019-06-13',
        count: 9
    },
    {
        date: '2019-04-12',
        count: 1
    },
];

const  dateObj = dateArr.reduce((prev, item) => {
    if (prev[item.date]) {
        prev[item.date].push(item)
    } else {
        prev[item.date] = [item]
    }
    return prev
}, {});
image.png
4. 将多维数组平铺到一维数组
const flatten = (arr) => {
   const result = arr.reduce((prev, item) => {
      if(Array.isArray(item)) {
        return prev.concat(flatten(item))
    } else {
        return prev.concat(item)
    }
   }, [])
  return result;
}
flatten(['a',  [1,2,3, ['c', [9, [3], 10],'k']], ['4', '7']]);
// ["a", 1, 2, 3, "c", 9, 3, 10, "k", "4", "7"]
5. 将多维数组平铺到指定深度
const flatten = (arr, depth = 1) => {
    if ( depth !== 1) {
        const value1 = arr.reduce((prev, item) => {
        if(Array.isArray(item)) {
          return prev.concat(flatten(item, depth - 1));
       } else {
          return prev.concat(item);
      }
    } ,[]);
    return value1;
    } else {
    const value2 = arr.reduce((prev, item) => {
        return prev.concat(item)
    }, []);
    return value2;
  }
}
flatten(['a',  [1,2,3, ['c', [9, [3], 10],'k']], ['4', '7']], 4)
// ["a", 1, 2, 3, "c", 9, 3, 10, "k", "4", "7"]
flatten(['a',  [1,2,3, ['c', [9, [3], 10],'k']], ['4', '7']], 2)
//  ["a", 1, 2, 3, "c", [9, [3], 10] , "k", "4", "7"]

相关文章

  • 数组及对象实用方法总结

    在项目中经常需要处理数据,经常需要操作数组和对象, 且正确使用reduce能够节省很多不必要的代码 1. 造假数据...

  • # 数组常用属性和方法总结

    数组常用属性和方法总结 数组也是对象,数组有对象的所有方法 1. 数组属性(2个主要属性) length -> 万...

  • record 5 go 中的数组

    一、数组的简单实用 数组创建的方法,及一些特点直接看例子即可请见下图 那么看这个例子,我们总结一下,数组的创建1、...

  • 数组及字符串方法

    数组实用方法 1.Array.from()方法从一个类似数组或可迭代对象中创建一个新的数组实例。 2.filter...

  • 数组及数组对象排序方法

    //数组方法排序: function sortNumber(a, b) { return a - b; } //数...

  • Java学习Day02

    今日学习内容总结 获取用户输入元素 匿名对象 Random方法 对象数组 ArrayList String Sca...

  • 数组、对象方法全总结

    Array 对象方法 一、 Array.map() 数组中的每项数据都添加一个方法,结果作为一个新的数组返回,并不...

  • js数组对象方法总结

    注意: 以下方法都以 arr = [1,2,3] 为例 1. 转换方法 不影响数组 方法名参数用法返回作用toSt...

  • OC基础:NSArray

    NSArray,数组,用于管理对象的有序集合。NSArray的用法总结如下: 1.数组的工厂方法创建: 2.数组初...

  • js数组去重、对象数组去重

    普通数组去重 一、普通数组去重 方法一:遍历数组法 方法二:排序法 方法三:对象法 对象数组去重 方法一:将对象数...

网友评论

      本文标题:数组及对象实用方法总结

      本文链接:https://www.haomeiwen.com/subject/sfmfqctx.html