ES6数据处理函数(笔记)

1. Object.entries()和Object.fromEntries()

//entries
const obj = { a: 1, b: 2, c: 3 };

const entries = Object.entries(obj);
console.log(entries); // [["a", 1], ["b", 2], ["c", 3]]

//fromEntries
const entries = [["a", 1], ["b", 2], ["c", 3]];

const obj = Object.fromEntries(entries);
console.log(obj); // { a: 1, b: 2, c: 3 }

对象与数组之间相互转换

2.Symbol类型和Symbol属性

const sym = Symbol('description');

const obj = {
  [sym]: 'value'
};

console.log(obj[sym]); // value

Symbol是一种新的原始数据类型,用于创建唯一的标识符。Symbol属性是对象中使用Symbol作为键创建的属性。

3. WeakMap和WeakSet

const wm = new WeakMap();

const obj = {};

wm.set(obj, 'value');

console.log(wm.get(obj)); // value

const ws = new WeakSet();

ws.add(obj);

console.log(ws.has(obj)); // true

  • WeakMap是一种集合类型,其中键必须是对象,并且在没有其他引用时会被垃圾回收。
  • WeakSet是一种集合类型,其中元素必须是对象,并且在没有其他引用时会被垃圾回收。

我们使用set()方法将obj对象添加到WeakMap中,并将值设置为’value’。然后,我们使用get()方法从WeakMap中获取值。类似地,我们使用add()方法将obj对象添加到WeakSet中,并使用has()方法检查集合中是否存在该对象。

4. Promise.allSettled()

const promises = [
  Promise.resolve('resolved'),
  Promise.reject('rejected'),
  Promise.resolve('resolved')
];

Promise.allSettled(promises)
  .then(results => {
    console.log(results);
  })
  .catch(error => {
    console.error(error);
  });

 // 输出结果:
 // [
 //  { status: 'fulfilled', value: 'resolved' },
 //  { status: 'rejected', reason: 'rejected' },
 //  { status: 'fulfilled', value: 'resolved' }
 // ]

Promise.allSettled()方法返回一个在所有给定的promise已被解析或被拒绝后决议的promise,并带有一个对象数组,每个对象表示对应的promise结果。

5. Array.of、Array.from

const arr1 = Array.of(1, 2, 3);
console.log(arr1); // [1, 2, 3]

const str = 'Hello';
const arr = Array.from(str);
console.log(arr); // 输出: ['H', 'e', 'l', 'l', 'o']

const nums = [1, 2, 3, 4, 5];
const doubled = Array.from(nums, num => num * 2);
console.log(doubled); // 输出: [2, 4, 6, 8, 10]


Array.of方法用于创建一个由参数组成的新数组。它与Array构造函数不同之处在于,当参数只有一个且为数字时,Array.of会创建一个只包含该数字的数组,而不是创建指定长度的空数组。
Array.from方法将类似数组或可迭代对象转换为真正的数组。它可以接收第二个参数来进行映射或筛选操作

.at和flat

 const arr3 = [1, 2, 3, 4, 5];
 console.log(arr3.at(2)); // 3

 const arr4 = [1, [2, [3]]];
 console.log(arr4.flat()); // [1, 2, [3]]

.at方法用于获取数组指定索引位置的元素,支持负数索引。负数的话从-1开始到-5
flat方法用于将多维数组扁平化为一维数组,可以指定扁平化的层数。

你可能感兴趣的:(es6,笔记,javascript)