美文网首页
npm 数组相关

npm 数组相关

作者: 为了记笔记注册的账号 | 来源:发表于2018-05-04 18:44 被阅读10次

内容来源: https://github.com/parro-it/awesome-micro-npm-packages

1.is-sorted

检查数组是否排序

var sorted = require('is-sorted')
console.log(sorted([1, 2, 3]))
// => true

console.log(sorted([3, 1, 2]))
// => false

// supports custom comparators
console.log(sorted([3, 2, 1], function (a, b) { return b - a })
// => true

2.array-first

获取数组的第一个元素或前n个元素。

$ npm i -d && npm test

var first = require('array-first');

first(['a', 'b', 'c', 'd', 'e', 'f']);
//=> 'a'

first(['a', 'b', 'c', 'd', 'e', 'f'], 1);
//=> 'a'

first(['a', 'b', 'c', 'd', 'e', 'f'], 3);
//=> ['a', 'b', 'c']

3.array-last

返回数组中的最后一个元素。

$ npm install --save array-last

var last =  require(' array-last ');

last([ ' a ',' b ',' c ',' d ',' e ',' f ' ]);
// =>'f'

last([ ' a ',' b ',' c ',' d ',' e ',' f ' ],1);
// =>'f'

last([ ' a ',' b ',' c ',' d ',' e ',' f ' ],3);
// => ['d','e','f']

4.arr-flatten

递归的展开一个或多个数组。

$ npm install --save arr-flatten

var flatten =  require(' arr-flatten ');

flatten([ ' a ',[ ' b ',[ ' c ' ]],' d ',[ ' e ' ]]);
// => ['a','b','c','d','e']

5. dedupe

从队列中删除重复项

$ npm install dedupe

var dedupe = require('dedupe')

var a = [1, 2, 2, 3]
var b = dedupe(a)
console.log(b)

//result: [1, 2, 3]
var dedupe = require('dedupe')

var aa = [{a: 2}, {a: 1}, {a: 1}, {a: 1}]
var bb = dedupe(aa)
console.log(bb)

//result: [{a: 2}, {a: 1}]
var dedupe = require('dedupe')

var aaa = [{a: 2, b: 1}, {a: 1, b: 2}, {a: 1, b: 3}, {a: 1, b: 4}]
var bbb = dedupe(aaa, value => value.a)
console.log(bbb)

//result: [{a: 2, b: 1}, {a: 1,b: 2}]

6.array-range

创建一个给定范围的新数组。

npm install array-range -save

// 创建一个指定了范围的数组
var range = require('array-range')
range(3)       // -> [ 0, 1, 2 ]
range(1, 4)    // -> [ 1, 2, 3 ]
// 主要用于函数式编程
var array = require('array-range')

array(5).map( x => x*x )
// -> [ 0, 1, 4, 9, 16 ]

array(2, 10).filter( x => x%2===0 )
// -> [ 2, 4, 6, 8 ]
// 创建固定大小的数组,不会创建中间数组。
array(5)

//vs.

Array.apply(null, new Array(5))

7.arr-diff

通过使用严格的相等性进行比较,排除第一个数组中存在的其他数组中有的值,返回排除后的第一个数组。

$ npm install --save arr-diff

var diff = require('arr-diff');

var a = ['a', 'b', 'c', 'd'];
var b = ['b', 'c'];

console.log(diff(a, b))
//=> ['a', 'd']

8.filled-array

返回填充指定输入的数组

$ npm install --save filled-array

const filledArray = require('filled-array');

filledArray('x', 3);
//=> ['x', 'x', 'x']

filledArray(0, 3);
//=> [0, 0, 0]

filledArray(i => {
    return (++i % 3 ? '' : 'Fizz') + (i % 5 ? '' : 'Buzz') || i;
}, 15);
//=> [1, 2, 'Fizz', 4, 'Buzz', 'Fizz', 7, 8, 'Fizz', 'Buzz', 11, 'Fizz', 13, 14, 'FizzBuzz']

9.map-array

将对象键和值映射到数组中

npm install --save map-array

  const mapArray = require('map-array');
  const obj = {
    giorgio: 'Bianchi',
    gino: 'Rossi'
  };
  console.log(mapArray(obj, (key, value) => key + ' ' + value));

10.in-array

如果数组中存在任何传递的值,则返回true --> 比使用indexOf快。

$ npm install in-array --save

var inArray = require('in-array');
console.log(inArray(['a', 'b', 'c'], 'a'));
//=> true

console.log(inArray(null, 'a'));
//=> false

console.log(inArray(null));
//=> false

11. unordered-array-remove

在无需拼接的情况下从无序数组中有效地移除元素

npm install unordered-array-remove

var remove = require('unordered-array-remove')

var list = ['a', 'b', 'c', 'd', 'e']
remove(list, 2) // remove 'c'
console.log(list) // returns ['a', 'b', 'e', 'd'] (no 'c')

12.array-swap

交换数组中两个元素的位置。

$ npm install swap-array --save

import SwapArray from 'swap-array';

var SomeArray = ['thats','cool','dude'];

SwapArray(SomeArray, 0, 2);
// ['dude','thats','cool'];

14.group-array

将对象数组分组到列表中。

yarn add mirrarray

var arr = [
  {tag: 'one', content: 'A'},
  {tag: 'one', content: 'B'},
  {tag: 'two', content: 'C'},
  {tag: 'two', content: 'D'},
  {tag: 'three', content: 'E'},
  {tag: 'three', content: 'F'}
];

// group by the `tag` property
groupArray(arr, 'tag');


结果是:
{
  one: [
    {tag: 'one', content: 'A'},
    {tag: 'one', content: 'B'}
  ],
  two: [
    {tag: 'two', content: 'C'},
    {tag: 'two', content: 'D'}
  ],
  three: [
    {tag: 'three', content: 'E'},
    {tag: 'three', content: 'F'}
  ]
}
// given an array of object, like blog posts...
var arr = [
  { data: { year: '2016', tag: 'one', month: 'jan', day: '01'}, content: '...'},
  { data: { year: '2016', tag: 'one', month: 'jan', day: '01'}, content: '...'},
  { data: { year: '2016', tag: 'one', month: 'jan', day: '02'}, content: '...'},
  { data: { year: '2016', tag: 'one', month: 'jan', day: '02'}, content: '...'},
  { data: { year: '2016', tag: 'one', month: 'feb', day: '10'}, content: '...'},
  { data: { year: '2016', tag: 'one', month: 'feb', day: '10'}, content: '...'},
  { data: { year: '2016', tag: 'one', month: 'feb', day: '12'}, content: '...'},
  { data: { year: '2016', tag: 'one', month: 'feb', day: '12'}, content: '...'},
  { data: { year: '2016', tag: 'two', month: 'jan', day: '14'}, content: '...'},
  { data: { year: '2016', tag: 'two', month: 'jan', day: '14'}, content: '...'},
  { data: { year: '2016', tag: 'two', month: 'jan', day: '16'}, content: '...'},
  { data: { year: '2016', tag: 'two', month: 'jan', day: '16'}, content: '...'},
  { data: { year: '2016', tag: 'two', month: 'feb', day: '18'}, content: '...'},
  { data: { year: '2017', tag: 'two', month: 'feb', day: '18'}, content: '...'},
  { data: { year: '2017', tag: 'two', month: 'feb', day: '10'}, content: '...'},
  { data: { year: '2017', tag: 'two', month: 'feb', day: '10'}, content: '...'},
  { data: { year: '2017', tag: 'three', month: 'jan', day: '01'}, content: '...'},
  { data: { year: '2017', tag: 'three', month: 'jan', day: '01'}, content: '...'},
  { data: { year: '2017', tag: 'three', month: 'jan', day: '02'}, content: '...'},
  { data: { year: '2017', tag: 'three', month: 'jan', day: '02'}, content: '...'},
  { data: { year: '2017', tag: 'three', month: 'feb', day: '01'}, content: '...'},
  { data: { year: '2017', tag: 'three', month: 'feb', day: '01'}, content: '...'},
  { data: { year: '2017', tag: 'three', month: 'feb', day: '02'}, content: '...'},
  { data: { year: '2017', tag: 'three', month: 'feb', day: '02'}, content: '...'}
]

groupArray(arr, 'data.year', 'data.tag', 'data.month', 'data.day');

结果是:
{ '2016': 
   { one: 
      { jan: 
         { '01': 
            [ { data: { year: '2016', tag: 'one', month: 'jan', day: '01' },
                content: '...' },
              { data: { year: '2016', tag: 'one', month: 'jan', day: '01' },
                content: '...' } ],
           '02': 
            [ { data: { year: '2016', tag: 'one', month: 'jan', day: '02' },
                content: '...' },
              { data: { year: '2016', tag: 'one', month: 'jan', day: '02' },
                content: '...' } ] },
        feb: 
         { '10': 
            [ { data: { year: '2016', tag: 'one', month: 'feb', day: '10' },
                content: '...' },
              { data: { year: '2016', tag: 'one', month: 'feb', day: '10' },
                content: '...' } ],
           '12': 
            [ { data: { year: '2016', tag: 'one', month: 'feb', day: '12' },
                content: '...' },
              { data: { year: '2016', tag: 'one', month: 'feb', day: '12' },
                content: '...' } ] } },
     two: 
      { jan: 
         { '14': 
            [ { data: { year: '2016', tag: 'two', month: 'jan', day: '14' },
                content: '...' },
              { data: { year: '2016', tag: 'two', month: 'jan', day: '14' },
                content: '...' } ],
           '16': 
            [ { data: { year: '2016', tag: 'two', month: 'jan', day: '16' },
                content: '...' },
              { data: { year: '2016', tag: 'two', month: 'jan', day: '16' },
                content: '...' } ] },
        feb: 
         { '18': 
            [ { data: { year: '2016', tag: 'two', month: 'feb', day: '18' },
                content: '...' } ] } } },
  '2017': 
   { two: 
      { feb: 
         { '10': 
            [ { data: { year: '2017', tag: 'two', month: 'feb', day: '10' },
                content: '...' },
              { data: { year: '2017', tag: 'two', month: 'feb', day: '10' },
                content: '...' } ],
           '18': 
            [ { data: { year: '2017', tag: 'two', month: 'feb', day: '18' },
                content: '...' } ] } },
     three: 
      { jan: 
         { '01': 
            [ { data: { year: '2017', tag: 'three', month: 'jan', day: '01' },
                content: '...' },
              { data: { year: '2017', tag: 'three', month: 'jan', day: '01' },
                content: '...' } ],
           '02': 
            [ { data: { year: '2017', tag: 'three', month: 'jan', day: '02' },
                content: '...' },
              { data: { year: '2017', tag: 'three', month: 'jan', day: '02' },
                content: '...' } ] },
        feb: 
         { '01': 
            [ { data: { year: '2017', tag: 'three', month: 'feb', day: '01' },
                content: '...' },
              { data: { year: '2017', tag: 'three', month: 'feb', day: '01' },
                content: '...' } ],
           '02': 
            [ { data: { year: '2017', tag: 'three', month: 'feb', day: '02' },
                content: '...' },
              { data: { year: '2017', tag: 'three', month: 'feb', day: '02' },
                content: '...' } ] } } } }

15.array.chunk

将array / TypedArray拆分为给定大小的块。

const chunks = require('array.chunk');

// [[1, 2], [3, 4], [5]]
console.log(chunks([1, 2, 3, 4, 5], 2));

相关文章

  • npm 数组相关

    内容来源: https://github.com/parro-it/awesome-micro-npm-packa...

  • npm 相关

    1.新装第三方库 :npm install 库名 --save 2.复制或下载项目:npm install 3.安...

  • npm相关

    收集一些window下npm相关的资料。 1.npm未能加载Visual C++组件,解决办法win10 错误提示...

  • npm相关

    Vue:1,使用Vue需要用到脚手架 vue-li,安装的时候用webpack-simple安装脚手架2,使用之...

  • NPM相关

    npm 官网镜像国内访问太慢,这里我使用了淘宝的npm镜像,安装方法如下: 执行后我们就可以使用 cnpm 命令来...

  • npm相关

    1、npm安装模块 【npm install xxx】利用 npm 安装xxx模块到当前命令行所在目录;【npm ...

  • npm相关

  • Npm相关

    package.json scripts配置下的命令,可以在‎⁨项目的⁨node_modules⁩/⁨.bin⁩下...

  • npm相关

    (1)查看npm 仓库,修改仓库也可以修改这个配置文件,并source 有时候依赖报错,可以删除node_modu...

  • npm 相关

    查看包的所有版本 npm view package versions npx 简化模块调用npx 作用是执行某个模...

网友评论

      本文标题:npm 数组相关

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