关于工作中遇到的一些数组操作的小记
1.Array对象如何转换成Object对象
在 JavaScript 中,Array 对象实际上已经是 Object 的一种特殊类型。Array 继承了 Object 的所有属性和方法,所以你不需要转换 Array 对象到 Object 对象。
不过,如果你想把 Array 对象转换为纯粹的 Object 对象,可以使用 Object.assign() 方法来实现。Object.assign() 方法可以将一个或多个源对象的属性复制到目标对象,从而创建一个新的对象。以下是将 Array 转换为 Object 的示例代码:
const arr = [1, 2, 3];const obj = Object.assign({}, arr); console.log(obj); // 输出: {0: 1, 1: 2, 2: 3}
在这个示例中,我们创建了一个新的空对象 {},然后使用 Object.assign() 方法将数组 arr 的属性复制到这个空对象中,生成了一个新的对象 obj。注意,这里使用的是空对象作为目标对象,以确保不会影响到原始的 arr 数组。
2.随机获取数组中的一条数据
var arr = [1, 2, 3, 4, 5]; // 要随机获取元素的数组 var randomIndex = Math.floor(Math.random() * arr.length); // 生成随机索引值 var randomElement = arr[randomIndex]; // 根据索引值获取随机元素 console.log(randomElement); // 输出随机元素
3.reverse() 倒叙数组
使用内置的reverse()函数:
let array = [1, 2, 3, 4, 5]; array.reverse(); console.log(array); // [5, 4, 3, 2, 1]
使用切片(Slice)
// JavaScript示例 let array = [1, 2, 3, 4, 5]; let reversedArray = array.slice().reverse(); console.log(reversedArray); // [5, 4, 3, 2, 1]
4.Array.splice()
这个方法可以改变原始数组,它接受两个参数:起始索引和要删除的元素数量。
以下是一个示例代码:
// 假设你的Vue数组名为myArray myArray.splice(myArray.length - 2, 2);
在这个示例中,myArray.length - 2表示倒数第二个元素的索引,2表示要删除的元素数量,因此将删除最后两个元素。
请注意,splice()方法会修改原始数组,如果你想保留原始数组,可以在删除之前创建一个副本。
var newArray = myArray.slice(0, myArray.length - 2);
5.filter()
filter()方法可以根据某个条件筛选出符合条件的元素,并返回一个新的数组。
// 假设你的数组名为myArray,要删除的Id分别为id1和id2var id1 = "123";var id2 = "456"; var newArray = myArray.filter(item => item.id !== id1 && item.id !== id2);
在这个示例中,我们使用了filter()方法来筛选出数组中id不等于id1和id2的元素,并将其赋值给新数组newArray。这样就实现了删除对应两个Id的元素。
请注意,这将创建一个新的数组newArray,其中包含除了对应两个Id的元素之外的所有其他元素。原始数组myArray并没有被修改,如果你想修改原始数组,可以将新数组重新赋值给myArray。
myArray = newArray;//这将把新数组newArray的内容覆盖到原始数组myArray中
6.排序
function sortedArray() { // 使用原生排序方法对数组进行排序(默认按照 Unicode 编码顺序) return tabList.value.sort((a, b) => a.extend.seqNumber - b.extend.seqNumber); }