01/10/2018, 14:53
Chuyển chuỗi thành mảng
Mình có một chuỗi
str="add,a,b,c,d,a,b,e,f";
Giờ mình muốn chuyển nó thành
ar=[
{ten:'a',solg:2},
{ten:'b',solg:2},
{ten:'c',solg:1},
{ten:'d',solg:1},
{ten:'e',solg:1},
{ten:'f',solg:1},
]
Có anh chị em nào giúp với? bằng javascript.
cám ơn trước.
Bài liên quan
Dùng method split nhé bạn:
var ar = str.split(",");
còn cái đếm thì thế nào bạn?
Counting the occurrences / frequency of array elements
uh, exellent!!!
Đọc không hiểu nhưng ra kết quả!!!
Cơ bản:
a.reduce((sum, curr) => sec_sum, 0);
haya.reduce(f, 0);
hay
sum = 0; for v in a sum = f(sum, curr);
Array.prototype.reduce()
The reduce() method applies a function against an accumulator and each element in the array (from left to right) to reduce it to a single value.
hix,
Bốc một thằng ra
Repeat
Xét với các thằng còn lại nếu giống thì tăng đếm, đá nó ra khỏi mảng
Hay bạn
Nếu không có cái này thực sự tui đổ mồ hôi hột code lên đến 30 dòng, !!!
Cái này thực sự là gì mà ảo diệu thế bạn?
Cái này được “bưng” từ bên lập trình hàm qua, cùng với arrow function (tên cúng cơm là anonymous function).
Có phải nó gọi là es5 gì đó không?
Hình như nó đâu có thuần của javascript, bởi vì nếu không có es5 thì nó không chạy?
*oops*
Anonymous là từ ES5, còn viết kiểu arrow là ES6 mới có.Mình có biết đâu, của cái bạn banhmisg9509 search ra đấy, mình cũng không quan tâm, Bạn code rõ ràng hơn đấy, mình chỉ thích rõ ràng.
Hay là level expert họ thích thế nhỉ!
Cú pháp reduce có gì không rõ ràng. Bạn lười tìm hiểu và thích đồ ăn sẵn thì đúng hơn.
Chỗ mình vẫn chưa hiểu là ++prev[curr] khi prev[curr] còn chưa tồn tại.
nếu
prev[curr]
chưa tồn tại thì++prev[curr]
==NaN
vàNaN
làfalsy
=>prev[curr] = ++prev[curr] || 1
trả đúng giá trị rồiGiả sử như không dùng cái reduce kia thì thông thường viết thế nào, anh chị em viết chơi cho vui,
Xem như template sau:
Bạn nào thấy vui thì viết đi kìa. Mình k thấy vui
Mình sử dụng phương pháp đánh dấu
Đây là phương pháp thứ hai đầy hình ảnh
Close your eyes
Imagination that you have two tupe of tenis balls, the right is contain 4 ball, the left is empty.
Pick up one ball on the top of the right tupe, call it is current ball
Repeat
–pick up one ball in the right,
–if it like current ball then throw out, else push it in to the left
// collect data here
until the right is empty
5, pour the left to the right
6. Repeat from 3 to 5 until the left is empty.