2017-03-28 15 views
-2

私が広がりオペレータについてこの例でつまずくと、ここで何が起こっているのかを理解しようとした:スプレッド演算子とイテレータプロトコル

let str = 'helloworld'; 
let first, rest; 

[first, ...rest] = [...str]; 
console.log(first); // "h" 
console.log(rest); // ["e", "l", "l", "o", "w", "o", "r", "l", "d"] 

誰かが私を助けることができますか?

答えて

-1

だから私はスプレッド演算子について読み、どのようにそれはイテレータプロトコルを実装し、これは私がそれをどう解釈するかである:

let str = 'helloworld'; 
let first, rest = []; 
let itStr = str[Symbol.iterator](); 

first = itStr.next().value; 

while (val = itStr.next()) { 
    if (val.done) { 
    break; 
    } 
    rest.push(val.value); 
}; 
console.log(first); // "h" 
console.log(rest); // ["e", "l", "l", "o", "w", "o", "r", "l", "d"] 
関連する問題