1、Array.from()
この方法は、興味深い反復またはオブジェクトセグメンテーションの類似配列であることができ、その値は、新しい配列として返さ
オブジェクトの擬似配列(持つlength
プロパティおよびインデックスの数は、任意のオブジェクトの属性)
イテラブル(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/iterable)(エレメントは、マップセットなど、オブジェクトを取得してもよいです)
この方法は、3つのパラメータを有し、一つはアレイまたはダミーイテレート可能オブジェクトの配列に変換する最初のものである、第二のパラメータはマップ方式に相当し、第三のパラメータは、マップ内で実行する関数である場合this
、ポインティング物体、幾分類似bind
、、 call
、apply
メソッドは、オブジェクトデータ及び処理データを分離することができます
const DObj = {
handleArr: function (x) {
return x+'1'
}
}
Array.from('Hello World !',function (v) { return this.handleArr(v)}, DObj)
// 打印结果
["H1", "e1", "l1", "l1", "o1", " 1", "W1", "o1", "r1", "l1", "d1", " 1", "!1"]
ヒント三番目のパラメータを使用した場合、マップ機能を使用するには、矢印の機能を使用することができ、そうでない場合は変更されません。この点は、三番目のパラメータを必要としない、矢印の機能を使用しないでください
地図
let m = new Map()
m.set('one', 'H')
m.set('tow', 'a')
m.set('three', 'a')
const DObj = {
handleArr: function (x) {
return x + '1'
}
}
newData = Array.from(m, function (v) { return this.handleArr(v)}, DObj)
console.log( newData)
// 打印结果
["one,H1", "tow,a1", "three,a1"]
セット
let m = new Set()
m.add('H')
m.add('a')
m.add('o')
const DObj = {
handleArr: function (x) {
return x + '1'
}
}
newData = Array.from(m, function (v) { return this.handleArr(v)}, DObj)
console.log( newData)
// 打印结果
["H1", "a1", "o1"]
オブジェクトのクラスArray
限りオブジェクトのようにkey
数値であり、value
デジタルではない、それはオブジェクトベースのアレイとみなすことができ、key
インデックスであります
2、Array.isArray()
この方法は、変数は、それが返された場合、配列データであるかどうかを検出するために使用されtrue
、それ以外の場合は戻り、false
const arr = [1,2,3,4,5];
const obj = {name: '李狗蛋'};
const str = 'Hello World';
console.log(Array.isArray(arr))
console.log(Array.isArray(str))
console.log(Array.isArray(obj))
// 打印结果
true
false
false
ヒント typeof
データまたは変数のタイプを検出するために使用されるが、唯一のタイプを返す、正確ではないinstanceof
データ変数またはオブジェクトはなく、配列を返すかどうかを検出する、例えばtrue
3、Array.of()
Arrayコンストラクタとは、あなたの中に基づいてパラメータの配列を作成することができ、多少似て置くが、違いは次のとおりです。
1. of
数だけキーパラメータは依然として配列である場合、メソッドは、内部としてアレイ内の各パラメータ項目であります
2. Array
各パラメータは、エントリのアレイとして内部コンストラクタする場合は空の配列の長さを作成する唯一のデジタルパラメータ