Video học lập trình hàng ngày

Trích dữ liệu từ mảng javascript – việc giải quyết vấn đề trong lập trình có thể nhanh hay chậm, dễ hiểu hay phức tạp. Hoặc có thể bạn muốn trình bày vấn đề mà bạn gặp phải cho một đồng nghiệp nghe và nhờ giúp đỡ từ họ, nhưng bạn không biết phải giải thích như thế nào để có thể giải quyết vấn đề của bạn. Bạn cần xem lại cách đặt câu hỏi của mình?

Bạn đang đọc bài viết “Trích dữ liệu từ mảng javascript” nhưng tại sao lại nói về điều gì vậy? Không, mọi vấn đề đều bắt đầu từ đây, Trích dữ liệu từ mảng javascript chính là một khái niệm mà bạn cần hiểu để khi cần và áp dụng, bạn chỉ cần tìm kiếm trên google, giả sử bạn không biết khái niệm đó, bạn phải mô tả vấn đề đó một cách tỉ mỉ nhất.

Trường hợp sử dụng Trích dữ liệu từ mảng javascript.

Một ngày đẹp trời, công ty giao cho bạn một mảng chứa thông tin như sau:

var goal = [ { "category" : "other", "title" : "harry University", "value" : 50000, "id":"1" }, { "category" : "traveling", "title" : "tommy University", "value" : 50000, "id":"2" }, { "category" : "education", "title" : "jerry University", "value" : 50000, "id":"3" }, { "category" : "business", "title" : "Charlie University", "value" : 50000, "id":"4" } ]

Ví dụ từ: geeksforgeeks

Nhiệm vụ của bạn là lọc và chỉ lấy các giá trị thuộc “category”. Tôi biết đây là một bài toán đơn giản và có nhiều cách để làm, nhưng hãy nhớ rằng mục đích của bài viết này là để giới thiệu và giải thích một khái niệm trong lập trình javascript. Vì vậy, đừng lạc đề. Vậy Trích dữ liệu từ mảng javascript là gì? Và làm thế nào để viết code hiệu quả?

Trích dữ liệu từ mảng javascript là gì?

Trích dữ liệu từ mảng javascript là một khái niệm được sử dụng khi chúng ta cần lấy ra dữ liệu của một thuộc tính trong một danh sách đã cho. Tương tự như việc chúng ta phải lấy ra tên của tất cả sinh viên, nếu bạn không biết cách trích dữ liệu, bạn sẽ phải tìm kiếm phương pháp hoặc làm thủ công. Nhưng nếu bạn đọc bài viết này hoặc đã biết trước về khái niệm này, việc tìm hiểu hoặc tìm trên google sẽ cho ra phương pháp.

Như bạn đã thấy, nếu số lượng dữ liệu ít, bạn có thể làm bất kỳ điều gì bạn muốn, nhưng nếu bạn phải xử lý hàng triệu bản ghi, đây là một câu chuyện khác. Bây giờ bạn đã biết về Trích dữ liệu từ mảng javascript, chúng ta hãy xem qua một số cách triển khai hàm pluck trong bài viết này. Tôi cũng khuyên bạn dành thời gian học thêm về kỹ năng xử lý đối tượng và mảng trong javascript. Vì trong js, chúng ta sẽ sử dụng chúng rất nhiều.

Sử dụng Trích dữ liệu từ mảng javascript

Có nhiều phương pháp để tạo một hàm pluck(), hãy thử viết một số phương pháp để xem phương pháp nào hiệu quả hơn.

Tôi sẽ lấy ví dụ trên để so sánh luôn:

Trích các giá trị duy nhất từ mảng của đối tượng javascript

Cách 1:

Sử dụng from và map trong javascript

const pluck = key => array => Array.from(new Set(array.map(obj => obj[key]))); const getCategorys = pluck('category'); console.log(getCategorys(goal)); // goal ở đây là mảng đối tượng ở phía trên

Cách 2: Chỉ sử dụng map() trong javascript

let result = goal.map(a => a.category); let result = goal.map(({ category }) => category) console.log(result);

Ghi chú: Hãy nghĩ xem, chỉ cần nhìn vào map() là bạn sẽ biết, nhưng tại sao vẫn cần cách 1…???

Cách 3: Cách thông thường chỉ sử dụng vòng lặp for trong javascript

function pluck(objs, name) { var sol = []; for(var i in objs){ if(objs[i].hasOwnProperty(name)){ sol.push(objs[i][name]); } } return sol; } console.log(pluck(goal, 'category'));

Cách 4: Reduce trong javascript

const pluck = (key, array) => array.reduce((values, current) => { values.push(current[key]); return values; }, []); console.log(pluck('category', goal));

Cách 5 sử dụng thư viện như lodash hoặc Underscore.js | pluck()

var goal = [ { "category" : "other", "title" : "harry University", "value" : 50000, "id":"1" }, { "category" : "traveling", "title" : "tommy University", "value" : 50000, "id":"2" }, { "category" : "education", "title" : "jerry University", "value" : 50000, "id":"3" }, { "category" : "business", "title" : "Charlie University", "value" : 50000, "id":"4" } ] console.log(_.pluck(goal, 'category'));

Và cuối cùng, dành cho những ai đã từng sử dụng DataTable js

var table = $('#example').DataTable({ "data": [ { "name": "Tiger Nixon", "hr": { "position": "System Architect", "salary": "$320,800", "start_date": "2011/04/25" } }, { "name": "Garrett Winters", "hr": { "position": "Accountant", "salary": "$170,750", "start_date": "2011/07/25" } }, { "name": "Ashton Cox", "hr": { "position": "Junior Technical Author", "salary": "$86,000", "start_date": "2009/01/12" } } ], "columns": [ { "data": "name" }, { "data": "hr.position" } ] ); var saleries = table .rows() .data() .pluck( 'hr' ) .pluck( 'salary' );

Tóm lại, không quan trọng bạn sử dụng cách nào, quan trọng là bạn hiểu và nắm vững những khái niệm này, để khi gặp khó khăn, hãy tìm hiểu theo từ khóa đó, đừng mò mẫm hay đoán định, trong khi những vấn đề đó đã được giải quyết trên google hoặc thông qua các đồng nghiệp của bạn. Hãy nói chuyện bằng ngôn ngữ lập trình.

Related Posts