昨天有伙伴问了我
123 如何转换成 "[123]" 呢
即 number 类型如何转换成 JSON
'[' + 123 + ']'
即可
==================================
下面为大家整理了一些开发中常用的数组方法
splice
arr.splice(start, deleteCount, elem1, ..., elemN) 添加,删除和插入
从索引 start 开始修改 arr:删除 deleteCount 个元素并在当前位置插入 elem1, ..., elemN。最后返回被删除的元素所组成的数组
第一个元素start可以置为负数,它会从数组结尾处开始计算
当第二个元素deleteCount可以置为0,splice 方法就能够插入元素而不用删除任何元素
当只填写了 splice 的 start 参数时,将删除从索引 start 开始的所有数组项
slice
arr.slice(start, end)
它会返回一个新数组,将所有从索引 start 到 end(不包括 end)的数组项复制到一个新的数组
start 和 end 都可以是负数,在这种情况下,从末尾计算索引。
concat
arr.concat(arg1, arg2...) 创建一个新数组
只复制数组中的元素。其他对象,仍然会被作为一个整体添加
在数组中搜索
indexOf/lastIndexOf和includes
- arr.indexOf(item, from) —— 从索引 from 开始搜索 item,如果找到则返回索引,否则返回 -1。
- arr.lastIndexOf(item, from) —— 与indexOf相同,但从右向左查找
- arr.includes(item, from) —— 从索引 from 开始搜索 item,如果找到则返回 true(译注:如果没找到,则返回 false)。
一般使用这些方法时只会传入一个参数:传入 item 开始搜索。默认从头开始搜索
indexOf 和 includes 使用严格相等 === 进行比较,如果我们搜索 false,它会准确找到 false 而不是数字 0。
find和findIndex/findLastIndex
let result = arr.find(function(item, index, array) {
// item 是元素,index 是它的索引,array 是数组本身
// 如果返回 true,则返回 item 并停止迭代
// 对于假值(falsy)的情况,则返回 undefined
});
findIndex:它返回找到的元素的索引,而不是元素本身。如果没找到,则返回 -1。
findLastIndex:类似于 findIndex,但从右向左搜索,类似于 lastIndexOf
filter
搜索的是使函数返回 true 的第一个元素,返回的是所有匹配元素组成的数组
let results = arr.filter(function(item, index, array) {
// 如果 true; item 被 push 到 results,迭代继续
// 如果什么都没找到,则返回空数组
});
split和join
调用带有空参数 的 split(‘’),会将字符串拆分为字母数组
let str = "test";
alert( str.split('') ); // t,e,s,t
join与split相反,会将其粘合
let arr = ['Bilbo', 'Gandalf', 'Nazgul'];
let str = arr.join(';'); // 使用分号 ; 将数组粘合成字符串
alert( str ); // Bilbo;Gandalf;Nazgul
Array.isArray(value) 检查 value 是否是一个数组,如果是则返回 true,否则返回 false
- Object.keys(obj) —— 返回一个包含该对象所有的键的数组。
- Object.values(obj) —— 返回一个包含该对象所有的值的数组。
- Object.entries(obj) —— 返回一个包含该对象所有 [key, value] 键值对的数组。