Array对象方法(十)from/isArray/of

131 阅读1分钟

javaScript Array数组对象静态方法from/isArray/of

from:针对可迭代的对象进行数组的浅拷贝

  • 数组
  • 字符串
  • Set
  • Map
let arr = [1, 2, 3, 4, 5];
let result = Array.from(arr);
console.log(result); // [1, 2, 3, 4, 5]
let str = "asdfghj";
result = Array.from(str);
console.log(result); // ['a', 's', 'd', 'f', 'g', 'h', 'j']
let map = new Map([[1, 2], [3, 4], [5, 6]]);
result = Array.from(map);
console.log(result);
/**结果
[
  [ 1, 2 ],
  [ 3, 4 ],
  [ 5, 6 ]
]
*/
const set = new Set(['foo', 'bar', 'baz', 'foo']);
result = Array.from(set);
console.log(result); // ['foo', 'bar', 'baz']

isArray:判断一个对象是不是数组

let bool = true;
let str = "aaa";
let num = 0;
let undef = undefined;
let n = null;
let obj = {};
let map = new Map();
let set = new Set();
let arr = [];

console.log(Array.isArray(bool)); // false
console.log(Array.isArray(str)); // false
console.log(Array.isArray(num)); // false
console.log(Array.isArray(undef)); // false
console.log(Array.isArray(n)); // false
console.log(Array.isArray(obj)); // false
console.log(Array.isArray(map)); // false
console.log(Array.isArray(set)); // false
console.log(Array.isArray(arr)); // true

of:根据内容创建数组

let arr1 = Array.of(7, null, undefined);
console.log(arr1); // [7, null, undefined]
let arr2 = Array.of([], {}, new Map(), new Set());
console.log(arr2); // [ [], {}, Map(0), Set(0) ]
let arr3 = Array.of(10);
console.log(arr3); // [10]