
ด้วยการพัฒนาเทคโนโลยีส่วนหน้าอย่างต่อเนื่อง อินเทอร์เฟซที่ต้องแสดงในงานส่วนหน้ามีความซับซ้อนมากขึ้นเรื่อยๆ ดังนั้นจึงมีสถานการณ์การประมวลผลข้อมูลเพิ่มมากขึ้น ตัวอย่างเช่น: มักจะจำเป็นต้องแสดงโครงสร้างแบบต้นไม้ ในระบบการจัดการพื้นหลัง และข้อมูลส่วนหน้าที่ส่งคืนโดยพื้นหลังคือโครงสร้างแนวนอน ในเวลานี้ เราจำเป็นต้องแปลงข้อมูลให้เป็นโครงสร้างแบบต้นไม้ เมื่อแสดงฮิสโตแกรม echart ข้อมูลที่ส่งคืนจะต้องถูกขจัดข้อมูลซ้ำซ้อนและรวมเข้าด้วยกัน เมื่อทำการกรอง เราจำเป็นต้องจัดเรียงข้อมูล สิ่งที่พบบ่อยที่สุดคือ มีการเพิ่มเติม การลบ การแก้ไข และการตรวจสอบของ Dom เมื่อเราแสดงความคิดเห็น ฯลฯ ดังนั้นบทความในวันนี้จะพาคุณเข้าสู่สถานการณ์ทางธุรกิจเหล่านี้และเผชิญกับปัญหาเหล่านี้ เราไม่กลัวการดำเนินการกับข้อมูล JavaScript อีกต่อไป และปล่อยให้การพัฒนาทำงานกลายเป็นเรื่องง่ายและมีประสิทธิภาพ
: นี่คือระบบการจัดการเบื้องหลัง - โมดูลการจัดการพจนานุกรม ซึ่งรวมถึงการดำเนินการสี่ประการในการเพิ่ม ลบ การแก้ไข และการสืบค้นพจนานุกรมข้อมูล แล้ววิธีแก้ปัญหาของเราในการจัดการกับการดำเนินการทั้ง 4 ประการนี้คืออะไร โปรดอ่านต่อ

arr.push ใหม่จะผลักองค์ประกอบตั้งแต่หนึ่งรายการขึ้นไปจากด้านหลังของอาร์เรย์
var arr = [1,2,3]; // Return: ความยาวของอาร์เรย์ที่แก้ไข arr.push(4,5,6); console.log(arr) //ผลลัพธ์เอาต์พุต arr=[1,2,3,4,5,6]
arr.unshift เพิ่มองค์ประกอบตั้งแต่หนึ่งรายการขึ้นไปจากด้านหน้าของอาร์เรย์
var arr = [1,2,3]; // Return: ความยาวของอาร์เรย์ที่แก้ไข arr.unshift(4,5,6); console.log(arr) //ผลลัพธ์เอาต์พุต arr=[4,5,6,1,2,3]
arr.shift ใช้เพื่อลบองค์ประกอบแรกของอาร์เรย์
// วิธี shift ของอาร์เรย์ใช้เพื่อลบองค์ประกอบแรก องค์ประกอบของอาร์เรย์ ลบหนึ่งองค์ประกอบ var arr = [1,2,3]; // ส่งคืนองค์ประกอบที่ถูกลบ; arr.กะ(); //Output result arr=[2,3]
arr.pop ลบองค์ประกอบสุดท้ายของอาร์เรย์
// วิธีการป๊อปของอาร์เรย์ใช้เพื่อลบองค์ประกอบสุดท้ายของอาร์เรย์ var arr = [1,2,3] ; // ส่งคืนองค์ประกอบที่ถูกลบ; arr.ป๊อป(); //ผลลัพธ์เอาต์พุต arr = [1,2];
arr.splice : สามารถเพิ่ม ลบ หรือแก้ไขที่ ตำแหน่งใดก็ได้ ในอาร์เรย์
โดยมีฟังก์ชัน 3 แบบ ได้แก่ การลบ การแทรก และการแทนที่ ส่งคืนอาร์เรย์ (รวมถึงรายการที่ถูกลบดั้งเดิมในอาร์เรย์ (ส่งคืนอาร์เรย์ว่างหากไม่มีการลบรายการ))
Syntax
splice(index,howmany,item1,...itemx);
1. Delete สามารถลบรายการจำนวนเท่าใดก็ได้โดยการระบุพารามิเตอร์ 2 รายการ ได้แก่ ตำแหน่งของรายการแรกที่จะลบ และจำนวนรายการที่จะลบ ให้ arr=[1,2,3]; ให้ arr1=arr.splice(1,2);//จะลบองค์ประกอบที่ 2 และ 3 ของอาร์เรย์ (เช่น 2,3) การแจ้งเตือน (arr);//[1] การแจ้งเตือน (arr1);//[2,3] 2. การแทรกสามารถแทรกรายการจำนวนเท่าใดก็ได้ในตำแหน่งที่ระบุโดยระบุเพียง 3 พารามิเตอร์เท่านั้น: ตำแหน่งเริ่มต้น, 0 (จำนวนรายการที่จะลบ) และรายการที่จะแทรก ให้ arr=[1,2,3]; ให้ arr1=arr.splice(1,0,4,5);//จะแทรก 4,5 โดยเริ่มจากตำแหน่งที่ 1 ของอาร์เรย์ การแจ้งเตือน (arr);//[1,4,5,2,3] การแจ้งเตือน (arr1);//[] 3. การแทนที่สามารถแทรกรายการจำนวนเท่าใดก็ได้ในตำแหน่งที่ระบุ และลบรายการจำนวนเท่าใดก็ได้พร้อมๆ กัน คุณจะต้องระบุพารามิเตอร์ 3 รายการเท่านั้น ได้แก่ ตำแหน่งเริ่มต้น จำนวนรายการที่จะลบ และจำนวนรายการเท่าใดก็ได้ จะถูกแทรก (จำนวนการแทรกไม่จำเป็นต้องเท่ากับจำนวนที่ถูกลบ) ให้ arr = [1,2,3]; ให้ arr1=arr.splice(1,1,"red","green");//จะลบ 2 จากนั้นจึงแทรกสตริง "red" และ "green" จากตำแหน่งที่ 2 การแจ้งเตือน(arr);//[1,"สีแดง","สีเขียว",3] alert(arr1);//[2]
arr.indexOf : ค้นหาดัชนีตามองค์ประกอบ หากองค์ประกอบนั้นอยู่ในอาร์เรย์ ให้ส่งคืนดัชนี หรือส่งคืน -1 หรือไม่ อาร์เรย์
var arr = [10 ,20,30] console.log(arr.indexOf(30)); // 2 console.log(arr.indexOf(40)); // -1
arr.findIndex : ใช้เพื่อค้นหาดัชนีขององค์ประกอบแรกที่ตรงตามเงื่อนไข หากไม่ส่งคืน -1
var arr = [10, 20, 30] ;
var res1 = arr.findIndex (ฟังก์ชัน (รายการ) {
คืนสินค้า >= 20;
-
//ส่งคืนดัชนีขององค์ประกอบแรกที่ตรงตามเงื่อนไข console.log(res1); ใช้ เพื่อเชื่อมต่อหลายองค์ประกอบในอาร์เรย์เข้ากับสตริงด้วยตัวคั่นที่ระบุ
var arr = [ 'User1' ,'ผู้ใช้2','ผู้ใช้3'];
var str = arr.join('|');
console.log(str); //
ผู้ใช้ 1 |. ผู้ใช้ 2 |. ผู้ใช้ 3 วิธี แยก สตริง: แปลงตัวเลข ตามด้วยอักขระที่แยกจากกัน
// วิธีนี้ใช้เพื่อแยกสตริงออกเป็นอาร์เรย์ที่มีสัญลักษณ์ที่ระบุ var str = 'ผู้ใช้ 1 | ผู้ใช้ 3';
var arr = str.split('|');
console.log(arr);
['ผู้ใช้ 1', 'ผู้ใช้ 2', 'ผู้ใช้ 3'] ต้องบอกว่าด้วยความก้าวหน้าของเทคโนโลยีและการพัฒนาฮาร์ดแวร์ ประสิทธิภาพการประมวลผลของเบราว์เซอร์ก็ดีขึ้นเช่นกัน ต่อไปเราจะได้พบกัน สถานการณ์ที่สอง - การดำเนินการเรียงลำดับข้อมูล ซึ่งหมายความว่าเราจำเป็นต้องใช้การเรียงลำดับต่างๆ ที่ส่วนหน้า เรามาอ่านกันดีกว่า~

var arr = [23,34,3,4,23,44,333,444];
arr.sort (ฟังก์ชัน (a, b) {
กลับ AB;
-
console.log(arr); ที่นี่ เรายังแนะนำอัลกอริธึมการเรียงลำดับที่ใช้กันทั่วไปหลายอย่าง:
var arr = [23,34,3,4,23,44,333,444];
var arrShow = (ฟังก์ชัน insertionSort (อาร์เรย์) {
ถ้า(Object.prototype.toString.call(array).slice(8,-1) ==='Array'){
สำหรับ (var i = 1; i < array.length; i++) {
คีย์ var = อาร์เรย์ [i];
วาร์ เจ = ฉัน - 1;
ในขณะที่ (j >= 0 && array[j] > คีย์) {
อาร์เรย์[เจ + 1] = อาร์เรย์[เจ];
เจ--;
-
อาร์เรย์ [j + 1] = คีย์;
-
ส่งคืนอาร์เรย์;
}อื่น{
กลับ 'อาร์เรย์ไม่ใช่อาร์เรย์!';
-
})(อาร์อาร์);
console.log(arrShow);//[3, 4, 23, 23, 34, 44, 333, 444] binaryInsertionSort (อาร์เรย์) {
ถ้า (Object.prototype.toString.call (array).slice (8, -1) === 'อาร์เรย์') {
สำหรับ (var i = 1; i < array.length; i++) {
คีย์ var = array[i] ซ้าย = 0 ขวา = i - 1;
ในขณะที่ (ซ้าย <= ขวา) {
var middle = parseInt((ซ้าย + ขวา) / 2);
ถ้า (คีย์ <อาร์เรย์[กลาง]) {
ขวา = กลาง - 1;
} อื่น {
ซ้าย = กลาง + 1;
-
-
สำหรับ (var j = i - 1; j >= ซ้าย; j--) {
อาร์เรย์[เจ + 1] = อาร์เรย์[เจ];
-
อาร์เรย์[ซ้าย] = คีย์;
-
ส่งคืนอาร์เรย์;
} อื่น {
กลับ 'อาร์เรย์ไม่ใช่อาร์เรย์!';
-
} ฟังก์ชันการเรียงลำดับการเลือก SelectionSort(array) {
ถ้า (Object.prototype.toString.call (array).slice (8, -1) === 'อาร์เรย์') {
var len = array.length, อุณหภูมิ;
สำหรับ (var i = 0; i <len - 1; i++) {
var min = อาร์เรย์ [i];
สำหรับ (var j = i + 1; j <len; j++) {
ถ้า (อาร์เรย์ [j] <นาที) {
อุณหภูมิ = นาที;
นาที = อาร์เรย์[เจ];
อาร์เรย์[j] = อุณหภูมิ;
-
-
อาร์เรย์[i] = นาที;
-
ส่งคืนอาร์เรย์;
} อื่น {
กลับ 'อาร์เรย์ไม่ใช่อาร์เรย์!';
-
} ฟังก์ชันการเรียงลำดับฟอง bubbleSort(array) {
ถ้า (Object.prototype.toString.call (array).slice (8, -1) === 'อาร์เรย์') {
var len = array.length, อุณหภูมิ;
สำหรับ (var i = 0; i <len - 1; i++) {
สำหรับ (var j = len - 1; j >= i; j--) {
ถ้า (อาร์เรย์ [j] < อาร์เรย์ [j - 1]) {
อุณหภูมิ = อาร์เรย์ [j];
อาร์เรย์[เจ] = อาร์เรย์[เจ - 1];
อาร์เรย์ [j - 1] = อุณหภูมิ;
-
-
-
ส่งคืนอาร์เรย์;
} อื่น {
กลับ 'อาร์เรย์ไม่ใช่อาร์เรย์!';
-
} // วิธีที่ 1 ฟังก์ชั่น QuickSort (อาร์เรย์, ซ้าย, ขวา) {
ถ้า (Object.prototype.toString.call (array).slice (8, -1) === 'อาร์เรย์' && ประเภทซ้าย === 'หมายเลข' && ประเภทขวา === 'หมายเลข') {
ถ้า (ซ้าย < ขวา) {
var x = อาร์เรย์ [ขวา], i = ซ้าย - 1, อุณหภูมิ;
สำหรับ (var j = ซ้าย; j <= ขวา; j++) {
ถ้า (อาร์เรย์ [j] <= x) {
ฉัน++;
อุณหภูมิ = อาร์เรย์ [i];
อาร์เรย์[i] = อาร์เรย์[j];
อาร์เรย์[j] = อุณหภูมิ;
-
-
QuickSort(อาร์เรย์, ซ้าย, i - 1);
QuickSort(อาร์เรย์, i + 1, ขวา);
-
} อื่น {
return 'อาร์เรย์ไม่ใช่อาร์เรย์หรือซ้ายหรือขวาไม่ใช่ตัวเลข!';
-
-
วาร์ aaa = [3, 5, 2, 9, 1];
QuickSort(aaa, 0, aaa.ความยาว - 1);
console.log(aaa);
//วิธีที่ 2 var QuickSort = function(arr) {
ถ้า (arr.length <= 1) { กลับ arr;
var pivotIndex = Math.floor(arr.length / 2);
var pivot = arr.splice (pivotIndex, 1) [0];
var ซ้าย = [];
var ขวา = [];
สำหรับ (var i = 0; i < arr.length; i++){
ถ้า (arr [i] <เดือย) {
left.push(arr[i]);
} อื่น {
right.push(arr[i]);
-
-
กลับ QuickSort(ซ้าย).concat([pivot], QuickSort(ขวา));
}; /*คำอธิบายวิธีการ: การเรียงลำดับฮีป @param array อาร์เรย์ที่จะเรียงลำดับ*/
ฟังก์ชั่น heapSort (อาร์เรย์) {
ถ้า (Object.prototype.toString.call (array).slice (8, -1) === 'อาร์เรย์') {
//สร้างฮีป var heapSize = array.length, temp;
สำหรับ (var i = Math.floor(heapSize / 2); i >= 0; i--) {
heapify(อาร์เรย์, i, heapSize);
-
// เรียงลำดับฮีปสำหรับ (var j = heapSize - 1; j >= 1; j--) {
อุณหภูมิ = อาร์เรย์ [0];
อาร์เรย์[0] = อาร์เรย์[j];
อาร์เรย์[j] = อุณหภูมิ;
heapify(อาร์เรย์, 0, --heapSize);
-
} อื่น {
กลับ 'อาร์เรย์ไม่ใช่อาร์เรย์!';
-
-
/*คำอธิบายวิธีการ: รักษาคุณสมบัติของฮีป @param arr array @param x array subscript @param len ขนาดฮีป*/
ฟังก์ชั่น heapify (arr, x, len) {
ถ้า (Object.prototype.toString.call(arr).slice(8, -1) === 'อาร์เรย์' && typeof x === 'หมายเลข') {
var l = 2 * x, r = 2 * x + 1, ใหญ่ที่สุด = x, อุณหภูมิ;
ถ้า (l < len && arr[l] > arr[ใหญ่ที่สุด]) {
ใหญ่ที่สุด = ลิตร;
-
ถ้า (r < len && arr[r] > arr[ใหญ่ที่สุด]) {
ใหญ่ที่สุด = r;
-
ถ้า (ใหญ่ที่สุด != x) {
อุณหภูมิ = arr[x];
arr[x] = arr[ใหญ่ที่สุด];
arr[ใหญ่ที่สุด] = อุณหภูมิ;
heapify(arr, ใหญ่ที่สุด, len);
-
} อื่น {
return 'arr ไม่ใช่ Array หรือ x ไม่ใช่ตัวเลข!';
-
} โอเค หลังจากที่เราแก้ไขปัญหาการเรียงลำดับแล้ว ขณะนี้เรากำลังเผชิญกับปัญหาการขจัดข้อมูลซ้ำซ้อน อย่ากลัว ยังมีวิธีแก้ปัญหาอีกมากมาย โปรดอ่านต่อช้าๆ:
ที่ทำงาน เมื่อประมวลผลข้อมูล json ตัวอย่างเช่นเมื่อเรียงลำดับขนาดของผลิตภัณฑ์บางประเภทก็เป็นเรื่องปกติที่ผลิตภัณฑ์ต่างๆ จะมีขนาดเท่ากัน หากเราต้องการแปลงเป็นตารางเพื่อแสดงขนาดเหล่านี้ ฉันก็ไม่ควรทำซ้ำในที่นี้ ลงวิธีการสองสามอย่างเพื่อลบการซ้ำซ้อนออกจากอาร์เรย์เพื่อใช้อ้างอิง:
// วิธีที่ง่ายที่สุดในการลบการซ้ำซ้อนออกจากอาร์เรย์/*
* สร้างอาร์เรย์ใหม่ สำรวจอาร์เรย์ขาเข้า และกดค่าลงในอาร์เรย์ใหม่หากไม่ได้อยู่ในอาร์เรย์ใหม่ * IE8 และต่ำกว่าไม่รองรับวิธี indexOf ของอาร์เรย์* */
ฟังก์ชั่น uniq (อาร์เรย์) {
var temp = []; //อาร์เรย์ชั่วคราวใหม่สำหรับ (var i = 0; i < array.length; i++){
ถ้า (temp.indexOf (อาร์เรย์ [i]) == -1) {
temp.push(อาร์เรย์[i]);
-
-
อุณหภูมิกลับ;
-
วาร์ AA = [1,2,2,4,9,6,7,5,2,3,5,6,5];
console.log(uniq(aa)); /*
* เร็วที่สุดและใช้พื้นที่มากที่สุด (พื้นที่แลกกับเวลา)
-
* วิธีการนี้ดำเนินการได้เร็วกว่าวิธีอื่น แต่ใช้หน่วยความจำมากกว่า
* แนวคิดปัจจุบัน: สร้างวัตถุ js ใหม่และอาร์เรย์ใหม่ เมื่อสำรวจอาร์เรย์ขาเข้า ให้พิจารณาว่าค่านั้นเป็นคีย์ของวัตถุ js หรือไม่
* ถ้าไม่เช่นนั้น ให้เพิ่มคีย์ให้กับอ็อบเจ็กต์แล้วใส่ลงในอาร์เรย์ใหม่
* หมายเหตุ: เมื่อพิจารณาว่าเป็นคีย์อ็อบเจ็กต์ js หรือไม่ "toString()" จะถูกดำเนินการกับคีย์ขาเข้าโดยอัตโนมัติ
* คีย์ที่แตกต่างกันอาจถูกเข้าใจผิดว่าเหมือนกัน เช่น n[val]--n[1], n["1"];
* เพื่อแก้ปัญหาข้างต้น คุณยังคงต้องเรียก "indexOf" -
ฟังก์ชั่น uniq (อาร์เรย์) {
var temp = {}, r = [], len = array.length, val, ประเภท;
สำหรับ (var i = 0; i <len; i++) {
วาล = อาร์เรย์ [i];
type = ประเภทของวาล;
ถ้า (!temp[val]) {
อุณหภูมิ [val] = [ประเภท];
r.push(วาล);
} อื่นถ้า (temp[val].indexOf(type) < 0) {
อุณหภูมิ [val] .push (ประเภท);
r.push(วาล);
-
-
กลับ r;
-
วาร์ AA = [1,2,"2",4,9,"a","a",2,3,5,6,5];
console.log(uniq(aa));/*
* จัดเรียงอาร์เรย์ขาเข้าเพื่อให้ค่าเดียวกันอยู่ติดกันหลังจากการเรียงลำดับ
* จากนั้นเมื่อเดินทางข้ามเฉพาะค่าที่ไม่ซ้ำกับค่าก่อนหน้าเท่านั้นที่จะถูกเพิ่มลงในอาร์เรย์ใหม่
* จะรบกวนลำดับของอาเรย์เดิม* */
ฟังก์ชั่น uniq (อาร์เรย์) {
อาร์เรย์.sort();
var temp=[อาร์เรย์[0]];
สำหรับ (var i = 1; i < array.length; i++){
ถ้า (อาร์เรย์ [i] !== อุณหภูมิ [temp.length-1]){
temp.push(อาร์เรย์[i]);
-
-
อุณหภูมิกลับ;
-
วาร์ AA = [1,2,"2",4,9,"a","a",2,3,5,6,5];
console.log(uniq(aa)); /*
-
* คุณยังคงต้องเรียก "indexOf" และประสิทธิภาพก็คล้ายกับวิธีที่ 1
* แนวคิดในการนำไปปฏิบัติ: หากรายการที่ i-th ของอาเรย์ปัจจุบันปรากฏครั้งแรกในตำแหน่งอื่นที่ไม่ใช่ i
* หมายความว่ารายการที่ i ถูกทำซ้ำและละเว้น มิฉะนั้น ให้เก็บอาร์เรย์ผลลัพธ์
-
ฟังก์ชั่น uniq (อาร์เรย์) {
อุณหภูมิ var = [];
สำหรับ (var i = 0; i < array.length; i++) {
//หากรายการที่ i-th ของอาร์เรย์ปัจจุบันปรากฏครั้งแรกที่ i ในอาร์เรย์ปัจจุบัน รายการนั้นจะถูกเก็บไว้ในอาร์เรย์ มิฉะนั้น จะหมายถึงรายการที่ซ้ำกัน if(array.indexOf(array[i]) == i) {
temp.push (อาร์เรย์ [i])
-
-
อุณหภูมิกลับ;
-
วาร์ AA = [1,2,"2",4,9,"a","a",2,3,5,6,5];
console.log(uniq(aa)); // แนวคิด: รับค่าที่ถูกต้องที่สุดโดยไม่ซ้ำกันและนำไปไว้ในอาร์เรย์ใหม่ /*
*วิธีการแนะนำ*
* รหัสการใช้งานของวิธีการค่อนข้างเจ๋ง
* แนวคิดในการนำไปปฏิบัติ: รับค่าที่ถูกต้องที่สุดโดยไม่มีการทำซ้ำและใส่ลงในอาร์เรย์ใหม่
* (เมื่อตรวจพบค่าที่ซ้ำกัน ให้ยุติการวนรอบปัจจุบันและเข้าสู่การตัดสินรอบถัดไปของการวนรอบระดับบนสุด) */
ฟังก์ชั่น uniq (อาร์เรย์) {
อุณหภูมิ var = [];
ดัชนี var = [];
var l = array.length;
สำหรับ (var i = 0; i < l; i ++) {
สำหรับ(var j = i + 1; j < l; j++){
ถ้า (อาร์เรย์ [i] === อาร์เรย์ [j]) {
ฉัน++;
เจ = ฉัน;
-
-
temp.push(อาร์เรย์[i]);
ดัชนี.ผลักดัน(i);
-
console.log(ดัชนี);
อุณหภูมิกลับ;
-
วาร์ AA = [1,2,2,3,5,3,6,5];
console.log(uniq(aa)); เมื่อเลือกแผนก คุณมักจะเห็นเมนูแผนผังประเภทนี้หรือไม่ โดยทั่วไปข้อมูลที่ส่งคืนจะเป็นแนวนอน โดยทั่วไปแล้วเราจะสร้างเมนูประเภทนี้ขึ้นมา โปรดดู~~

const dataTree = [
{id: 1 ชื่อ: 'สำนักงานใหญ่', parentId: 0},
{id: 2 ชื่อ: 'สาขาเซินเจิ้น', parentId: 1},
{id: 3 ชื่อ: 'สาขาปักกิ่ง', parentId: 1},
{id: 4 ชื่อ: 'แผนก R&D', parentId: 2},
{id: 5 ชื่อ: 'ฝ่ายการตลาด', parentId: 2},
{id: 6 ชื่อ: 'แผนกทดสอบ', parentId: 2},
{id: 7 ชื่อ: 'แผนกการเงิน', parentId: 2},
{id: 8 ชื่อ: 'ฝ่ายปฏิบัติการและบำรุงรักษา', parentId: 2},
{id: 9 ชื่อ: 'ฝ่ายการตลาด', parentId: 3},
{id: 10 ชื่อ: 'แผนกการเงิน', parentId: 3},
-
ฟังก์ชั่น changeData (ข้อมูล, parentId = 0) {
ให้ tree = [];//สร้างอาร์เรย์ว่าง//สำรวจข้อมูลแต่ละส่วน data.map((item) => {
// parentId ในแต่ละข้อมูลจะเหมือนกับที่ส่งผ่าน if (item.parentId == parentId) {
//เพียงมองหาเซ็ตย่อยขององค์ประกอบนี้เพื่อค้นหา parentId==item.id ในองค์ประกอบ ด้วยวิธีนี้ item.children = changeData(data, item.id);
tree.push (รายการ);
-
-
ต้นไม้กลับ
-
console.log(changeData(dataTree, 0)); 
เรามักจะพบการประมวลผลข้อมูลเมื่อแสดงแผนภูมิ และเรายังพบการรวมรายการเดียวกันของอาร์เรย์ด้วย ต่อไปนี้คือวิธีการผสานรายการเดียวกันของอาร์เรย์:

var arr = [
{"id": "1" "ชื่อ": "เชลิซี" "num": 245 "},
{"id": "1", "name": "เชลิซี", "num": 360 "},
{"id": "2" "ชื่อ" "แอปเปิ้ล" "" num "120"}
{"id": "2" "ชื่อ" "แอปเปิ้ล" "" num "360"}
{"id": "2" "ชื่อ" "แอปเปิ้ล" "" num "180"}
{"id": "3", "ชื่อ": "กล้วย", "num": 160"},
{"id": "4" "ชื่อ" "สับปะรด" "" num "180"}
{"id": "4" "ชื่อ" "สับปะรด" "" num "240"}
-
แผนที่ var = {}, ผลลัพธ์ = [];
สำหรับ (var i = 0; i < arr.length; i++){
วาเรล = arr[i];
ถ้า(!แผนที่[ele.id]){
ผลลัพธ์.ผลักดัน({
รหัส:ele.id,
ชื่อ: ele.name,
ค่า: ele.value
-
แผนที่ [ele.id] = เอเล;
}อื่น{
สำหรับ (var j = 0; j < result.length; j++){
var dj = ผลลัพธ์ [j];
ถ้า (dj.id == ele.id){
dj.value=(parseFloat(dj.value) + parseFloat(ele.value)).toString();
หยุดพัก;
-
-
-
-
console.log(result) เมื่อเห็นสิ่งนี้ ปัญหาทั่วไปหลายประการในการประมวลผลข้อมูลในส่วนหน้าได้รับการแก้ไขแล้ว แน่นอนว่า ในความเป็นจริง ยังมีปัญหาอีกมากมายที่ยังไม่ได้รวมไว้ และจะตามมาทีหลัง ฉันจะค่อยๆ อัปเดตและรวมไว้ ขณะเดียวกัน ฉันยังหวังว่าเพื่อนๆ ที่มีปัญหาในการประมวลผลข้อมูล JavaScript จะสามารถสื่อสารกับบล็อกเกอร์ได้ และผู้ที่มีแนวคิดในการแก้ปัญหาที่ดีก็สามารถให้ข้อเสนอแนะกับบล็อกเกอร์ได้เช่นกัน
บทความนี้จะแนะนำปัญหาการประมวลผลข้อมูลทั่วไปห้าประการในกระบวนการพัฒนา JavaScript และให้แนวทางแก้ไขที่เกี่ยวข้อง โดยพื้นฐานแล้ว จะครอบคลุมความต้องการการใช้งานในกระบวนการพัฒนารายวัน ให้โซลูชั่น