nodejs数组操作
操作
map
通过指定函数处理数组的每个元素,并返回处理后的数组。
map() ⽅法会将数组中元素依次传⼊⽅法中,并将⽅法的返回结果组成新数组返回。
传⼊的function可以有⾃⼰的三个形参,currentValue, index,arr分别代表当前元素,元素,元素所属数组对象;其中currentValue是必须的。
注意:map不会改变原数组,map不会检查空数组
filter
filter⽤于对数组进⾏过滤。
参数同map
它创建⼀个新数组,新数组中的元素是通过检查指定数组中符合条件的所有元素.
注意:filter()不会对空数组进⾏检测、不会改变原始数组
every
every() ⽅法⽤于检测数组所有元素是否都符合指定条件(通过函数提供)。
参数同map
every() ⽅法使⽤指定函数检测数组中的所有元素:
如果数组中检测到有⼀个元素不满⾜,则整个表达式返回 false ,且剩余的元素不会再进⾏检测。
如果所有元素都满⾜条件,则返回 true。
注意: every() 不会对空数组进⾏检测。 注意: every() 不会改变原始数组。
some
some 和every 正好相反:
参数同map
some⽅法会依次执⾏数组的每个元素;
如果有⼀个元素满⾜条件,则表达式返回true , 剩余的元素不会再执⾏检测
如果没有满⾜条件的元素,则返回false
includes
includes() 的参数和上⾯⼏个有区别,它可以作为辅助函数判断数组中是否包含某个元素。
includes() ⽅法⽤来判断⼀个数组是否包含⼀个指定的值,如果是返回 true,否则false。
sort
sort() ⽅法⽤于对数组的元素进⾏排序。
注释:该⽅法会改变原始数组。
arrayObject.sort(sortby)
splicefilter过滤对象数组
splice() ⽅法向/从数组中添加/删除项⽬,然后返回被删除的项⽬。
注释:该⽅法会改变原始数组。arrayObject.splice(index,howmany,item1,…,itemX)index 必需。整数,规定添加/删除项⽬的位置,使⽤负数可从数组结尾处规定位置。howmany 必需。要删除的项⽬数量。如果设置为 0,则不会删除项⽬。
item1, …, itemX 可选。向数组添加的新项⽬。
indexOf
可返回某个指定的字符串值在字符串中⾸次出现的位置。stringObject.indexOf(searchvalue,fromindex)searchvalue 必需。规定需检索的字符串值。
fromindex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的⾸字符开始检索。
注释:indexOf() ⽅法对⼤⼩写敏感! 注释:如果要检索的字符串值没有出现,则该⽅法返回 -1。
类似的函数
** lastIndexOf() ⽅法可返回⼀个指定的字符串值最后出现的位置,在⼀个字符串中的指定位置从后向前搜索。**
join
join() ⽅法⽤于把数组中的所有元素放⼊⼀个字符串。
元素是通过指定的分隔符进⾏分隔的。
arrayObject.join(separator)var  arr = [10,5,1000,25,1];console .log (`arr:\n ${arr }`);//sort 在原数组的上修改顺序console .log (`after sort arr1:\n ${arr .sort ()}`);  //1,10,1000,25,5console .log (`after sort arr2:\n ${arr .sort ((a ,b )=>{return  a -b })}`);  //a-b 升序  1,5,10,25,1000console .log (`after sort arr3:\n ${arr .sort ((a ,b )=>{return  b -a })}`);  //b-a 降序 1000,25,10,5,1
1
2
34
5
6
7
8
9
10
11var  arr = [1, 2, 3, 4, 5, 6];arr .splice (2, 3); // [3, 4, 5]  删除第三个元素以后的三个数组元素 arr .splice (2, 0, 7, 8);  // []  在第三个元素之前插⼊7和8arr ; // [1, 2, 7, 8, 9] arr .splice (2, 3, 9, 10);  // [7, 8, 9]  删除第三个元素以后的三个数组元素,并⽤9和10代替arr ;  // [1, 2, 9, 10]
1
2
3
4
5
6
7
8
9
separator 可选。指定要使⽤的分隔符。如果省略该参数,则使⽤逗号作为分隔符。
concat concat() ⽅法⽤于连接两个或多个数组。
该⽅法不会改变现有的数组,⽽仅仅会返回被连接数组的⼀个副本。
应⽤
对象遍历arrayObject .concat (arrayX ,arrayX ,......,arrayX )
1Object .entries ({ one : 1, two : 2 })    //[['one', 1], ['two', 2]]Object .entries ([1, 2])                //[['0', 1], ['1', 2]]// === 若是键名是Symbol ,编译时会被⾃动忽略 ====Object .entries ({[Symbol ()]:1, two : 2})  //[['two', 2]]// ==== entries()返回的数组顺序和for 循环⼀样,即如果对象的key 值是数字,则返回值会对key 值进⾏排序====Object .entries ({ 3: 'a', 4: 'b', 1: 'c' })    //[['1', 'c'], ['3', 'a'], ['4', 'b']]// === 利⽤ies()创建⼀个真正的Map ===var  obj = { foo : 'bar', baz : 42 };var  map1 = new  Map ([['foo', 'bar'], ['baz', 42]]); //原本的创建⽅式var  map2 = new  Map (Object .entries (obj ));    //等同于map1console .log (map1);// Map { foo: "bar", baz: 42 }console .log (map2);// Map { foo: "bar", baz: 42 }// === Object.keys() ===Object .keys ({ one : 1, two : 2 })  // ["one", "two"]Object .keys ({ 3: 'a', 4: 'b', 1: 'c' })  //  ["1", "3", "4"]// === Object.values ===Object .values ({ one : 1, two : 2 })            //[1, 2]Object .values ({ 3: 'a', 4: 'b', 1: 'c' })    //['c', 'a', 'b']
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
数组应⽤    "5979942": {        "uid": 5979942,        "uname": "⽤户5979942",        "ugender": 2    },    "5979945": {        "uid": 5979945,        "uname": "⽤户5979945",        "ugender": 1    },    "5979946": {        "uid": 5979946,        "uname": "⽤户5979946",        "ugender": 1    }}console .log (`user:${JSON .stringify (users )}`);//遍历⽅法1console .log (`遍历⽅法1`);for (let  i in  users ){    console .log (`i:${i },users[i]:${JSON .stringify (users [i ])}`);}console .log (`遍历⽅法2`);// 遍历⽅法2Object .keys (users ).map (v =>{console .log (`v:${v },info:${JSON .stringify (users [v ])}`)})
23456789101112131415161718192021222324252627282930
{        "uid": 5979946,        "act": -1,        "rate": 1,        "time": 1596078572373,        "delegated": false    },    {        "uid": 5979942,        "act": -1,        "rate": 1,        "time": 1596078575235,        "delegated": false    },    {        "uid": 5979945,        "act": 1,        "rate": 2,        "time": 1596078578154,        "delega
ted": false    },    {        "uid": 5979945,        "act": 3,        "cards": [            777,            265,            1033,            515        ],        "rate": 2,        "time": 1596078583879,        "delegated": false    }]console .log (`map:...................`)actions .map ( (v ,i )=>{console .log (`i:${i },v:${JSON .stringify (v )}`)});console .log (`filter:...................`)let  act1 = actions .filter ((v ,i )=>{return  v .act > 0;})console .log (`act1:${JSON .stringify (act1)}`);console .log (`some:...................`)let  result = actions .some ((v )=>{return  v .act > 0})console .log (`result:${result }`);console .log (`every:...................`)let  result1 = actions .every ((v )=>{return  v .act > 0})console .log (`result1:${result1}`);2345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。