JavaScript හි අනුක්රමණය කළ හැකි වස්තුවක් නිර්මාණය කිරීම
අපි සැබෑ අනුක්රමණය කළ හැකි වස්තුවක්
නිර්මාණය කරමු, එය
for-of ලූපය භාවිතයෙන්
පුනරාවර්තනය කළ හැකිය. මේ සඳහා
වස්තුවට අනුරූප
ශ්රිතය Symbol.iterator හි එකතු කිරීමට අවශ්ය වේ.
අපි ක්රියාත්මක කරමු. අප සතුව පහත වස්තුව ඇතැයි සිතමු:
let obj = {
a: 1,
b: 2,
c: 3,
};
Symbol.iterator හි ශ්රිතය එකතු කරමු:
obj[Symbol.iterator] = function() {
}
මෙම ශ්රිතය උත්පාදකයක් බවට පරිවර්තනය කරමු:
obj[Symbol.iterator] = function *() {
}
අපගේ ශ්රිතය තුළ this යනු
වස්තුවටම යොමු වේ:
obj[Symbol.iterator] = function *() {
console.log(this); // වස්තුවම
}
අනුපිටපත් කරන්නා තුළ වස්තුව පුනරාවර්තනය කිරීම ආරම්භ කරමු:
obj[Symbol.iterator] = function *() {
for (let key in this) {
yield obj[key];
}
}
හොඳයි, වස්තුව
for-of ලූපය මගින් පුනරාවර්තනය කළ හැකිය:
for (let elem of obj) {
console.log(elem); // 1, 2, 3
}
for-of ලූපය මගින් පුනරාවර්තනය කළ හැකි
වස්තුවක් සාදන්න. ලූප මූලද්රව්යය
තුළ වස්තුවක් ඇතුළු වනු ඇත, එහි
key යන යතුරෙහි
පුනරාවර්තනය වන වස්තුවේ යතුර,
සහ val යතුරෙහි - අගය.
උදාහරණය:
let obj = {a: 1, b: 2, c: 3};
for (let elem of obj) {
console.log(elem);
}
ප්රතිදානය:
{key: 'a', val: 1}
{key: 'b', val: 2}
{key: 'c', val: 3}