หนึ่งใน action ที่ทำบ่อยมากคือ การผสาน (merge) Object หนึ่งตัว (หรือมากกว่า) และ การเลือกซ้ำ (intersect) Array สองตัวเข้าด้วยกัน
function mergeObj(){สำหรับ mergeObj นั้นสามารถส่ง Object เป็น parameter เข้าไปกี่ตัวก็ได้เพราะรับค่าด้วยตัวแปร arguments
var r = { };
for( var i in arguments ){
for( var j in arguments[i] ){
r[j] = arguments[i][j];
}
}
return r;
}
var a = {x:1, y:2, z:3};
var b = {q:10, w:20, e: 30, x:40};
var result = mergeObj(a,b);
//result is {x:40, y:2, z:3, q:10, w:20, e:30}
function intersect( arr1, arr2 ){ส่วน intersect จะใช้กับ Array โดยใช้คุณสมบัติของ .filter เข้าช่วย
if( arr1 instanceof Array && arr2 instanceof Array ){
//make arr1 smaller than arr2
if( arr1.length > arr2.length ){
var tmp = arr1;
arr1 = arr2;
arr2 = tmp;
}
return arr1.filter(function( n ){
return arr2.indexOf(n) !== -1;
});
}
return [ ];
}
var a = [1,2,3,4,5,6,7,8,9,10];
var b = [2,4,6,8,10,12,14,16];
var result = intersect(a,b);
//result is [2,4,6,8,10]
ไม่มีความคิดเห็น:
แสดงความคิดเห็น