Array.from方法用于将两类对象转为真正的数组:类似数组的对象( array-like object )和可遍历( iterable )的对象(包括 ES6 新增的数据结构 Set 和Map )。
let arrayLike = {
'0': 'a',
'1': 'b',
'2': 'c',
length: 3
// ES5 的写法
var arr1 = [].slice.call(arrayLike); // ['a', 'b', 'c']
// ES6 的写法
let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']
// NodeList 对象
let ps = document.querySelectorAll('p');
Array.from(ps).forEach(function (p) {
console.log(p);
// arguments 对象
function foo() {
var args = Array.from(arguments);
// ...
Array.from('hello')
// ['h', 'e', 'l', 'l', 'o']
let namesSet = new Set(['a', 'b'])
Array.from(namesSet) // ['a', 'b']
Array.from({ length: 3 });
// [ undefined, undefined, undefined ]
Array.from还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组。
Array.from(arrayLike, x => x * x);
// 等同于
Array.from(arrayLike).map(x => x * x);
Array.from([1, 2, 3], (x) => x * x)
// [1, 4, 9]
值得提醒的是,扩展运算符(...)也可以将某些数据结构转为数组。
// arguments 对象
function foo() {
var args = [...arguments];
// NodeList 对象
[...document.querySelectorAll('div')]
对象
转化为
数组
的三种
方法
:
Object
.keys(obj) -----根据
对象
的键形成的
数组
(常用)
Object
.entries(obj) ---- 根据
对象
的键值对形成的
数组
Object
.values(obj)----根据
对象
的值形成的
数组
注意点:
Object
开头字母要大写
Object
.keys(obj) (4) ["a", "b", "c", "d"]0: "a"1: "b"2: "c"3: "d"length: 4__proto__:
Array
(0)
Object
.values(obj)
是
JavaScript
中的一个静态
方法
,用于从一个类似
数组
或可迭代
对象
(如SetMap的迭代器,或者字符串、类
数组
对象
等)创建一个新的、浅拷贝的
数组
实例。
对象
转化为
数组
的三种
方法
:
Object
.keys(obj) -----根据
对象
的键形成的
数组
(常用)
Object
.entries(obj) ---- 根据
对象
的键值对形成的
数组
Object
.values(obj)----根据
对象
的值形成的
数组
。for- in 的返回值可以是
对象
的属性名(键名)和属性值,而
Object
.values(obj)只返回属性值。for-in 循环可以枚举原型链中的属性,而
Object
.values(obj)不可以。
var obj = { name: '小明', age: 22 };
var arr =
Object
.values(obj) ; //
对象
转化为
数组
console.log(arr); // ['小明', 22]
字符串转化为
数组
var str= "abc";
var arr =
Object
.values(str) ; /字符串转化为
数组
console.log(arr); // ['a', 'b','c']
在开发中,前端处理数据,很多时候都会用到把
对象
转成
数组
,话不多说,咱们直接上代码
//
对象
转
数组
,想要转成什么字段根据需求
function fmObjToArr (data) {
let arr = []
for (let key in data) {
arr.push({
label: data[key], // label 字段
value: key // value字段
return arr
//举一个例子
一些
ES6
中部分
数组
的
新增
方法
和
对象
的
新增
方法
的简单介绍
Array
.of()
方法
用于将一组数值
转为
数组
,并且弥补了ES5中的
Array
()的不足,
Array
()传入参数小于2时,返回的结果是不同的,而
Array
.of()就完美解决了这个问题。代码如下:
3.
数组
实例的
方法
3.1 find()
find()
方法
用于找出
数组
中第一个符合的成员,和indexOf()类似,但是它得到的是成员和undefined,而不是下标和-1;fi
6.some()、every() 参数:函数-------- 返回值:true/false。2.includes() 参数:数值 -------- 返回值:true/false。4.forEach() 参数:函数-------- 返回值:undefined。3.map()、filter() 参数:函数-------- 返回值:
数组
。1.
Array
.from()是内置
对象
Array
的
方法
,实例
数组
不能调用。5.find() 参数:函数-------- 返回值:数值。
将一个类
数组
对象
转换为
数组
在很多时候都显得很有必要,可以
使用
数组
相关的api等,所以
ES6
中对类
数组
对象
转
数组
给出了相应的
方法
。
1、
Array
.from():用以将类
数组
对象
转换为
数组
。
ES5中对类
数组
转
数组
的方式为:
let
array
Like = {
'0': 'a',
'1': 'b',
'2': 'c',
length: 3
Set类似于
数组
,但是成员的值都是唯一的,没有重复的值。Set 本身是一个构造函数,用来生成 Set 数据结构。
const s = new Set();
let arr = [2, 3, 5, 4, 5, 2, 2]
arr.forEach(x => s.add(x));
console.log(s); //Set(4) { 2, 3, 5, 4 }
Set 函数可以接受一个
数组
(或者具有 iterable 接口的其他数据结构)作为参数,用来初始化。
let arr = [12,3,