数组原型上的方法:forEach,map,reduce,some,concat,every,filter,splice 1.some() 方法测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个Boolean类型的值。 2.every() 方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。 3.Map 是一组键值对结构,具有极快的查找速度 map.set('Adam', 67); // 添加新的key-value map.has('Adam'); // 是否存在key 'Adam': true map.get('Adam'); // 67 map.delete('Adam');

map 转换成 object const map = new Map([arr1, arr2]) cont obj = Object.fromEntries(map)

也可以将数组转化成对象 与 object.entries() 方法相反

  1. set 是 一组key 的集合,无序不重复 add clear:清除所有 delete, entries, has, keys, values Set.prototype.keys() 与values()方法相同,返回一个新的迭代器对象,该对象包含Set对象中的按插入顺序排列的所有元素的值。 返回两个数组的并集(没有重复部分)

Array.isfrom(new Set([...array1, ...array2])) 注意 :concat 和 [...array1, ...array2] 都不能去重

set.add() set.has() set.delete()

set 和 数组 互转 mySet2 = new Set([1, 2, 3, 4]); mySet2.size; // 4 [...mySet2]; // [1,2,3,4] Array.isfrom()

求交集 const intersection = new Set([...set1]).filter(x =>set2.has(x)) 求差集 const difference = new Set([...set1].filter(x => !set2.has(x)))

  1. object prototypes object.keys object.assign Object.definePropertie() 方法直接在一个对象上定义新的属性或修改现有属性,并返回该对象。 Object.freeze() 方法可以冻结一个对象。 hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键)。

  2. object 和 map 的区别

  3. map的key 可以相同,因为地址不同所以可以解决同名属性的碰撞问题 我们知道,对象其实就是在堆开辟了一块内存,其实Map的键存的就是这块内存的地址。只要地址不一样,就是两个不同的键,这就解决了同名属性的碰撞问题,而传统的Object显然做不到这一点。

  4. map 实现的是一个迭代器 可以用for( of) 遍历

  5. map 可以直接访问size

  6. map 是有序的

  7. 可展开性

7.js获取json对象中的key和value,并组成新数组 var json = {"name" : "Tom", "age" : 18}; //想分别获取它的key 和 value

for (var key in json) { console.log(key); //获取key值 console.log(json[key]); //获取对应的value值 }

  1. 数组是有哪些可以改变原来的数组的 concat slice map push reduce reverse shift pop unshift sort splice
上次更新:
贡献者: 郑壮