Iterator.zipKeyed()
Experimental: ããã¯å®é¨çãªæ©è½ã§ãã
æ¬çªã§ä½¿ç¨ããåã«ãã©ã¦ã¶ã¼äºææ§ä¸è¦§è¡¨ããã§ãã¯ãã¦ãã ããã
Iterator.zipKeyed() ã¯éçã¡ã½ããã§ãè¤æ°ã®å復å¯è½ãªãã¸ã§ã¯ãããè¦ç´ ãéç´ããæ°ãã Iterator ãªãã¸ã§ã¯ããçæãã¾ããããã¯æ¬è³ªçã«å
¥åå復å¯è½ãªãã¸ã§ã¯ãããã¾ã¨ãããããããåæã«å復å¦çã§ããããã«ãã¾ãã
Iterator.zip() ã¡ã½ãããåæ§ã§ããããªãã¸ã§ã¯ãã§ã¯ãªãé
åãçæãã¾ãã
æ§æ
Iterator.zipKeyed(iterables)
Iterator.zipKeyed(iterables, options)
弿°
iterables-
ãªãã¸ã§ã¯ããããããã®ããããã£ã®ãã¼ã¯ãçµæãªãã¸ã§ã¯ãã®ãã¼ã¨ãã¦ä½¿ç¨ããã¾ããããããã£ã®å¤ã¯ãå復å¯è½ãããã³ã«ãå®è£ ãã¦ãããããããä¸å¯è½ãªå ´åã¯ã¤ãã¬ã¼ã¿ã¼ãããã³ã«ãå®è£ ãã¦ããå¿ è¦ãããã¾ãããããã®å復å¯è½ãªãã¸ã§ã¯ãã¯ç¡éã§ãæ§ãã¾ãããæååã¯æå¦ããã¾ããæååãã¾ã¨ããã«ã¯ã
Iterator.from()ã使ç¨ãã¦æç¤ºçã«å復å¯è½ãªãã¸ã§ã¯ãã«å¤æãã¦ãã ããã optionsçç¥å¯-
å ¥åãããã®ã®é·ããä¸è´ããªãå ´åã®æåãæå®ãããªãã¸ã§ã¯ãã以ä¸ã®ããããã£ãæã¤ãã¨ãã§ãã¾ãã
modeçç¥å¯-
以ä¸ã®ããããã§ãã
"shortest"ï¼ããã©ã«ãï¼: çµæã¨ãã¦çæãããã¤ãã¬ã¼ã¿ã¼ã¯ããããã䏿¹ã®å ¥åå復å¯è½ãªãã¸ã§ã¯ããæ¯æ¸ããæç¹ã§åæ¢ãã¾ãã"longest": çæãããã¤ãã¬ã¼ã¿ã¼ã¯ããã¹ã¦ã®å ¥åå復å¯è½ãªãã¸ã§ã¯ããæ¯æ¸ããæç¹ã§åæ¢ãã¾ããçãå復å¯è½ãªãã¸ã§ã¯ãããã®æ¬ è½å¤ã¯ãpaddingãªãã·ã§ã³ã«å¾ã£ã¦åãããã¾ãã"strict": ãã¹ã¦ã®å復å¯è½ãªãã¸ã§ã¯ããåæã«çµäºããªããã°TypeErrorãçºçãã¾ãã
paddingçç¥å¯-
ãªãã¸ã§ã¯ãã
modeã"longest"ã®å ´åã«ã®ã¿åå¾ã»æ¤è¨¼ããã¾ããundefinedã¾ãã¯åå¨ããªãå ´åãçãå復å¯è½ãªãã¸ã§ã¯ãããã®æ¬ è½å¤ã¯undefinedã§åãããã¾ãï¼ããã¯ç©ºã®ãªãã¸ã§ã¯ããæ¸¡ããã¨ã¨ç価ã§ãï¼ããªãã¸ã§ã¯ããæå®ãããå ´åãiterables弿°ã®ããããã®ãã¼ã¯Iterator.zipKeyed()ãå¼ã³åºãããæç¹ã§åå¾ããã¾ããpadding[key]ã¯iterables[key]ã®æ¬ è½å¤ã«ä½¿ç¨ããã¾ããpaddingãªãã¸ã§ã¯ãã«ä¸é¨ã®ãã¼ãæ¬ ãã¦ããå ´åããããã®ãã¼ã¯undefinedã§åãããã¾ãã
è¿å¤
æ°ãã Iterator ãªãã¸ã§ã¯ããããããã®è¦ç´ ã¯ãiterables 弿°ã¨åããã¼ãæã¤ãªãã¸ã§ã¯ãã§ããã対å¿ããä½ç½®ã«åå
¥åå復å¯è½ãªãã¸ã§ã¯ãããã®è¦ç´ ãå«ã¾ãã¦ãã¾ãã
解説
Iterator.zipKeyed() 颿°ã¯ Iterator.zip() ã®ããã«åä½ãã¾ããå¯ä¸ã®éãã¯ãçµæã®ãªãã¸ã§ã¯ãã§ä½¿ç¨ããããã¼ãæå®ã§ããç¹ã§ãã䏿¹ãIterator.zip() ã¯å¸¸ã«æ°å¤ã¤ã³ããã¯ã¹ï¼é
åãçæãããã¨ã§ï¼ã使ç¨ãã¾ãã
å復å¯è½ãªãã¸ã§ã¯ããé åã¨ãã¦è¡¨ãã¨ãå ¥åã¯æ¬¡ã®ããã«ãªããã¨ãããã¾ãã
({
a: [a1, a2, a3, a4],
b: [b1, b2, b3],
c: [c1, c2, c3, c4, c5],
});
çµæã¨ãã¦çæãããã¤ãã¬ã¼ã¿ã¼ã¯ããªãã·ã§ã³ã«ããããããæåã«æ¬¡ã®é åãçæãã¾ãã
({ a: a1, b: b1, c: c1 });
({ a: a2, b: b2, c: c2 });
({ a: a3, b: b3, c: c3 });
æåã® 3 ã¤ã®ãªãã¸ã§ã¯ããå復å¦çãããå¾ãå
¥åå復å¯è½ãªãã¸ã§ã¯ã b 㯠4 åç®ã® next() å¼ã³åºãã§çµäºãã¾ããã¤ã¾ã { done: true } ãè¿ãã¾ãããã®å¾ä½ãèµ·ããã㯠mode ãªãã·ã§ã³ã«ãã£ã¦ç°ãªãã¾ããmodeã "shortest" ï¼ããã©ã«ãï¼ã®å ´åãçµæã®ã¤ãã¬ã¼ã¿ã¼ã¯ããã§åæ¢ãã¾ããä»ã® 2 ã¤ã®å
¥åã¤ãã¬ã¼ã¿ã¼ã¯éããããç¶æ
ã«ãªãã¾ããmode ã "strict" ã®å ´åã2 çªç®ã®ã¤ãã¬ã¼ã¿ãçµæ { done: true } ãçæããæç¹ã§ä»ã® 2 ã¤ã®å復å¯è½ãªãã¸ã§ã¯ããå®äºãã¦ããªããããã¨ã©ã¼ãçºçãã¾ããmode ã "longest" ã®å ´åãçµæã®ã¤ãã¬ã¼ã¿ã¼ã¯ãªãã¸ã§ã¯ãã®çæãç¶ããä¸è¶³ãã¦ããå¤ãåãã¾ããä¾ãã°ãpadding ãæå®ããã¦ããªãå ´åãããã©ã«ã㯠undefined ã«ãªãã¾ãã
({ a: a4, b: undefined, c: c4 });
({ a: undefined, b: undefined, c: c5 });
padding ããªãã¸ã§ã¯ãã¨ãã¦æå®ãããå ´åã{ a: p1, b: p2, c: p3 } ã®ãããªå½¢å¼ã«ãªãã¾ãããã®å ´åãå
¥åå復å¯è½ãªãã¸ã§ã¯ã b ã®æ¬ è½å¤ã«ã¯ p2 ããå
¥åå復å¯è½ãªãã¸ã§ã¯ã a ã®æ¬ è½å¤ã«ã¯ p1 ã使ç¨ããã¾ãã
({ a: a4, b: p2, c: c4 });
({ a: p1, b: p2, c: c5 });
ä¾
>表形å¼ã®ãã¼ã¿ã®è»¢ç½®
表形å¼ãã¼ã¿ã表ãä¸è¬çãªæ¹æ³ã¯ 2 ã¤ããã¾ããããããã®ããããã£ãåã¨ãªããªãã¸ã§ã¯ãã¨ãã¦ãã¾ãã¯ããããã®ãªãã¸ã§ã¯ããè¡ã¨ãªããªãã¸ã§ã¯ãã®é
åã¨ãã¦ã§ãããã®ä¾ã§ã¯ãIterator.zipKeyed() ã使ç¨ãã¦åãã¼ã¹ã®è¡¨ç¾ãè¡åä½ã§å復å¦çããæ¹æ³ã示ãã¾ãã
const table = {
name: ["Caroline", "Danielle", "Evelyn"],
age: [30, 25, 35],
city: ["New York", "London", "Hong Kong"],
};
for (const { name, age, city } of Iterator.zipKeyed(table)) {
console.log(`${name}, aged ${age}, lives in ${city}.`);
}
// åºå:
// Caroline, aged 30, lives in New York.
// Danielle, aged 25, lives in London.
// Evelyn, aged 35, lives in Hong Kong.
Iterator.zipKeyed() ã®ç¨éã®å¤§åã¯ãIterator.zip() ã®ç¨éã¨åä¸ã§ããã©ã¡ãã使ç¨ãããã¯ãæ¢ã«å復å¯è½ãªãã¸ã§ã¯ãã®ãªãã¸ã§ã¯ããä¿æãã¦ãããï¼zipKeyed() ã使ç¨ï¼ãå復å¯è½ãªé
åãä¿æãã¦ãããï¼zip() ã使ç¨ï¼ã«ãã£ã¦æ±ºã¾ãã¾ããå¯è½ãªéã zipKeyed() ã使ç¨ãããã¨ãæ¨å¥¨ãã¾ããæç¤ºçãªãã¼ãæå®ãããã¨ã§ãå復å¯è½ãªãã¸ã§ã¯ãã®é åºã誤ã£ã¦æ··å¨ããããªã¹ã¯ã使¸ã§ããããã§ãã
仿§æ¸
| Specification |
|---|
| Joint Iteration> # sec-iterator.zipkeyed> |