.forEach(f(x)) | ไล่ทำฟังก์ชัน f ซ้ำกับสมาชิกในแถวลำดับทีละตัว |
.map(f(x)) | ไล่ทำฟังก์ชัน f ซ้ำกับสมาชิกในแถวลำดับทีละตัว แล้วสร้างเป็นแถวลำดับของค่าที่ฟังก์ชัน f คืนมา |
.filter(f(x)) | ไล่ทำฟังก์ชัน f ซ้ำกับสมาชิกในแถวลำดับทีละตัว แล้วคัดเหลือเฉพาะที่คืนค่า true |
.every(f(x)) | ไล่ทำฟังก์ชัน f ซ้ำกับสมาชิกในแถวลำดับทีละตัว แล้วดูค่าที่คืนมา ถ้าทุกตัวเป็น true ก็ได้ true ถ้ามี false แม้แต่ตัวเดียวก็จะได้ false |
.some(f(x)) | ไล่ทำฟังก์ชัน f ซ้ำกับสมาชิกในแถวลำดับทีละตัว แล้วดูค่าที่คืนมา ถ้าทุกตัวเป็น false ก็ได้ false ถ้ามี true แม้แต่ตัวเดียวก็จะได้ true |
.reduce(f(a,b)) | ไล่ทำฟังก์ชัน f ซ้ำกับสมาชิกในแถวลำดับทีละตัว ค่าที่คืนมาจะแทนในพารามิเตอร์ตัวแรกของรอบถัดไป สุดท้ายจะได้ค่าที่คืนจากรอบสุดท้าย |
.reduceRight(f(a,b)) | เหมือน .redece แต่ไล่จากตัวสุดท้ายมา |
แถวลำดับ.forEach(ฟังก์ชันที่ต้องการให้จัดการกับสมาชิกทุกตัว)
var ahan = ["ผัดไทย", "ราดหน้า", "แกงส้ม", "โจ๊กคนอร์"];
var saikhai = function(x) {
raikan_ahan += x + "ใส่ไข่\n";
};
var raikan_ahan = "";
ahan.forEach(saikhai);
alert(raikan_ahan);
ผัดไทยใส่ไข่
ราดหน้าใส่ไข่
แกงส้มใส่ไข่
โจ๊กคนอร์ใส่ไข่
แถวลำดับ.forEach(function(พารามิเตอร์) {
สิ่งที่จะทำซ้ำกับทุกตัว
});
var ahan = ["ผัดไทย", "ราดหน้า", "แกงส้ม", "โจ๊กคนอร์"];
var raikan_ahan = "";
ahan.forEach(function(x) {
raikan_ahan += x + "ใส่ไข่\n";
});
alert(raikan_ahan);
var khrueangduem = ["โอวัลติน", "น้ำเก๊กฮวย", "โค้ก", "ชาอูหลง"];
var raikan = "";
khrueangduem.forEach(function(x, i) {
raikan += i + ". " + x + "\n";
});
alert(raikan);
0. โอวัลติน
1. น้ำเก๊กฮวย
2. โค้ก
3. ชาอูหลง
var chue = ["ฟลุค", "โช้ค", "ท็อป"];
var s = "";
chue.forEach(function(x, i, ar) {
s += x + "ได้ที่ " + (1 + i) + " ในกลุ่ม {" + ar + "}\n";
});
alert(s);
ได้ฟลุคได้ที่ 1 ในกลุ่ม {ฟลุค,โช้ค,ท็อป}
โช้คได้ที่ 2 ในกลุ่ม {ฟลุค,โช้ค,ท็อป}
ท็อปได้ที่ 3 ในกลุ่ม {ฟลุค,โช้ค,ท็อป}
var ar = [1, 2, 3];
ar.forEach(function(x) {
x = x + 10;
});
alert(ar); // ได้ 1,2,3
var pokemon = [
{ chue: "พาราส", lv: 20 },
{ chue: "คงปัง", lv: 21 },
{ chue: "ดิกดา", lv: 23 }
];
pokemon.forEach(function(x) {
x.lv += 2;
});
alert(pokemon[0].lv); // ได้ 22
alert(pokemon[1].lv); // ได้ 23
alert(pokemon[2].lv); // ได้ 25
var kanmusu = ["คิริชิมะ", "อากางิ", "คงโงว", "ยูดาจิ"];
var kanmusu_kaini = kanmusu.map(function(x) {
return x + " ไคนิ ";
});
alert(kanmusu_kaini); // ได้ คิริชิมะ ไคนิ ,อากางิ ไคนิ ,คงโงว ไคนิ ,ยูดาจิ ไคนิ
alert(kanmusu); // ได้ คิริชิมะ,อากางิ,คงโงว,ยูดาจิ
var lek = [2, 5, 6, 9, 10, 11, 19, 28];
var lekkhu = lek.filter(function(x) {
return x % 2 == 0;
});
alert(lekkhu); // ได้ 2,6,10,28
var lekkhi = lek.filter(function(x) {
return x % 2 == 1;
});
alert(lekkhi); // ได้ 5,9,11,19
var pokemon = [
{ chue: "การ์ดี", nak: "19.0" },
{ chue: "เนียวโรโม", nak: "12.4" },
{ chue: "เคซีย์", nak: "19.5" },
{ chue: "วันริกี", nak: "19.5" },
{ chue: "มาดัตสึโบมิ", nak: "4.0" }
];
var pokemon_bao = pokemon.filter(function(x) {
return x.nak < 15;
});
alert(pokemon_bao.length); // ได้ 2
alert(pokemon_bao[0].chue); // ได้ เนียวโรโม
alert(pokemon_bao[1].chue); // ได้ มาดัตสึโบมิ
alert(pokemon_bao[2].chue); // ได้ TypeError: Cannot read property 'chue' of undefined
var pokemon = [
{ chue: "อีวุย", sung: 0.3, nak: 6.5 },
{ chue: "เชาเวอร์ส", sung: 1.0, nak: 29.0 },
{ chue: "ธันเดอร์ส", sung: 0.8, nak: 24.5 },
{ chue: "บูสเตอร์", sung: 0.9, nak: 25.0 }
];
var f1 = function(x) {
return x.sung > 0.5;
};
alert(pokemon.map(f1)); // ได้ false,true,true,true
alert(pokemon.some(f1)); // ได้ true
alert(pokemon.every(f1)); // ได้ false
alert(pokemon.filter(f1).length); // ได้ 3
var f2 = function(x) {
return x.nak > 30;
};
alert(pokemon.map(f2)); // ได้ false,false,false,false
alert(pokemon.some(f2)); // ได้ false
alert(pokemon.every(f2)); // ได้ false
alert(pokemon.filter(f2).length); // ได้ 0
var f3 = function(x) {
return x.nak < 30;
};
alert(pokemon.map(f3)); // ได้ true,true,true,true
alert(pokemon.some(f3)); // ได้ true
alert(pokemon.every(f3)); // ได้ true
alert(pokemon.filter(f3).length); // ได้ 4
แถวลำดับ.reduce(function(a, b, i) {
return ค่าที่จะแทนใน a ในรอบถัดไป;
});
var merazoma = ["เม", "รา", "โซ", "ม่า"];
var s = "";
var phonlap = merazoma.reduce(function(a, b, i) {
s += "รอบที่ " + i + ": ";
s += "a = " + a + ", ";
s += "b = " + b + "\n";
return a + b;
});
alert(s + "สุดท้ายได้: " + phonlap);
ได้ รอบที่ 1: a = เม, b = รา
รอบที่ 2: a = เมรา, b = โซ
รอบที่ 3: a = เมราโซ, b = ม่า
สุดท้ายได้: เมราโซม่า
var merazoma = ["เม", "รา", "โซ", "ม่า"];
var s = "";
var i = 1;
var len = merazoma.length;
var a = merazoma[0];
while (i < len) {
var b = merazoma[i];
s += "รอบที่ " + i + ": ";
s += "a = " + a + ", ";
s += "b = " + b + "\n";
a = a + b;
i++;
}
var phonlap = a;
alert(s + "สุดท้ายได้: " + phonlap);
var merazoma = ["ม่า", "รา", "กี", "เบ"];
var s = "";
var phonlap = merazoma.reduceRight(function(a, b, i) {
s += "รอบที่ " + i + ": ";
s += "a = " + a + ", ";
s += "b = " + b + "\n";
return a + b;
});
alert(s + "สุดท้ายได้: " + phonlap);
ได้ รอบที่ 2: a = เบ, b = กี
รอบที่ 1: a = เบกี, b = รา
รอบที่ 0: a = เบกีรา, b = ม่า
สุดท้ายได้: เบกีราม่า
var lek = [3, 5, 9, 12, 18];
var ruam = lek.reduce(function(a, b) {
return a + b;
});
alert(ruam); // ได้ 47
var lek = [66, 32, 11, 71, 43, 25, 38];
var maksut = lek.reduce(function(a, b) {
if (a > b) return a;
else return b;
});
alert(maksut); // ได้ 71
var noisut = lek.reduce(function(a, b) {
if (a < b) return a;
else return b;
});
alert(noisut); // ได้ 11
var chue = ["นางาโตะ", "มุตสึ", "อิเสะ", "ยุกิกาเซะ", "ฮิวงะ", "คางะ"];
var yaosut = chue.reduce(function(a, b, i) {
if (i == 1) a = { i: 0, chue: a };
b = { i: i, chue: b };
if (a.chue.length > b.chue.length) return a;
else return b;
});
alert("ที่ชื่อยาวสุดคือ " + yaosut.chue + " ลำดับที่ " + yaosut.i); // ได้ ที่ชื่อยาวสุดคือ ยุกิกาเซะ ลำดับที่ 3
ติดตามอัปเดตของบล็อกได้ที่แฟนเพจ