Hướng dẫn how do i count strings in javascript? - làm cách nào để đếm chuỗi trong javascript?

Tôi đã cập nhật câu trả lời này. Tôi thích ý tưởng sử dụng một trận đấu tốt hơn, nhưng nó chậm hơn:

console.log(("str1,str2,str3,str4".match(/,/g) || []).length); //logs 3

console.log(("str1,str2,str3,str4".match(new RegExp("str", "g")) || []).length); //logs 4

Sử dụng một biểu thức thông thường theo nghĩa đen nếu bạn biết những gì bạn đang tìm kiếm trước đó, nếu không bạn có thể sử dụng hàm tạo

"this is foo bar".split("o").length - 1;
// returns 2
8 và chuyển trong cờ
"this is foo bar".split("o").length - 1;
// returns 2
9 làm đối số.

    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var count=-1,index=-2; index != -1; count++,index=str.indexOf(stringsearch,index+1) );
// returns 2
0 Trả về
    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var count=-1,index=-2; index != -1; count++,index=str.indexOf(stringsearch,index+1) );
// returns 2
1 không có kết quả do đó
    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var count=-1,index=-2; index != -1; count++,index=str.indexOf(stringsearch,index+1) );
// returns 2
2

Câu trả lời ban đầu tôi đã thực hiện trong năm 2009 là dưới đây. Nó tạo ra một mảng một cách không cần thiết, nhưng sử dụng phân chia nhanh hơn (tính đến tháng 9 năm 2014). Tôi mơ hồ, nếu tôi thực sự cần tốc độ thì sẽ không có câu hỏi nào rằng tôi sẽ sử dụng một sự phân chia, nhưng tôi muốn sử dụng Match.using a split is faster (as of September 2014). I'm ambivalent, if I really needed the speed there would be no question that I would use a split, but I would prefer to use match.

Câu trả lời cũ (từ năm 2009):

Nếu bạn đang tìm kiếm dấu phẩy:

(mainStr.split(",").length - 1) //3

Nếu bạn đang tìm kiếm STR

(mainStr.split("str").length - 1) //4

Cả trong câu trả lời của @Lo và trong bài kiểm tra hiệu suất ngớ ngẩn của riêng tôi đều tiến lên phía trước về tốc độ, ít nhất là trong Chrome, nhưng một lần nữa tạo ra mảng thêm chỉ có vẻ không lành mạnh.

Hướng dẫn how do i count strings in javascript? - làm cách nào để đếm chuỗi trong javascript?

Corey

6.3724 Huy hiệu vàng19 Huy hiệu bạc28 Huy hiệu đồng4 gold badges19 silver badges28 bronze badges

Đã trả lời ngày 19 tháng 5 năm 2009 lúc 5:33May 19, 2009 at 5:33

Hướng dẫn how do i count strings in javascript? - làm cách nào để đếm chuỗi trong javascript?

BjornbjornBjorn

66.5K39 Huy hiệu vàng134 Huy hiệu bạc163 Huy hiệu Đồng39 gold badges134 silver badges163 bronze badges

15

Có ít nhất năm cách. Tùy chọn tốt nhất, cũng phải là nhanh nhất (do động cơ Regex gốc) được đặt ở trên cùng.

Phương pháp 1

("this is foo bar".match(/o/g)||[]).length;
// returns 2

Phương pháp 2

"this is foo bar".split("o").length - 1;
// returns 2

Chia không được khuyến nghị vì nó là đói tài nguyên. Nó phân bổ các phiên bản mới của 'mảng' cho mỗi trận đấu. Đừng thử nó cho một tệp> 100MB thông qua Filereader. Bạn có thể quan sát việc sử dụng tài nguyên chính xác bằng tùy chọn Profiler của Chrome.Chrome's profiler option.

Phương pháp 3

    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var count=-1,index=-2; index != -1; count++,index=str.indexOf(stringsearch,index+1) );
// returns 2

Phương pháp 4

Tìm kiếm một ký tự duy nhất

    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var i=count=0; i

Phương pháp 5

Ánh xạ phần tử và lọc. Điều này không được khuyến khích do phân bổ tài nguyên tổng thể của nó thay vì sử dụng 'máy phát điện' của Pythonia:

    var str = "this is foo bar"
    str.split('').map( function(e,i){ if(e === 'o') return i;} )
                 .filter(Boolean)
    //>[9, 10]
    [9, 10].length
    // returns 2

Chia sẻ: Tôi đã thực hiện ý chính này, với 8 phương thức tính nhân vật, vì vậy chúng tôi có thể trực tiếp gộp và chia sẻ ý tưởng của mình - chỉ để giải trí, và có lẽ một số điểm chuẩn thú vị :) I made this gist, with currently 8 methods of character-counting, so we can directly pool and share our ideas - just for fun, and perhaps some interesting benchmarks :)

User229044 ♦

226K40 Huy hiệu vàng325 Huy hiệu bạc334 Huy hiệu đồng40 gold badges325 silver badges334 bronze badges

Đã trả lời ngày 20 tháng 5 năm 2012 lúc 7:54May 20, 2012 at 7:54

Hướng dẫn how do i count strings in javascript? - làm cách nào để đếm chuỗi trong javascript?

Lorenz lo Sauerlorenz lo SauerLorenz Lo Sauer

22.7K13 Huy hiệu vàng81 Huy hiệu bạc86 Huy hiệu đồng13 gold badges81 silver badges86 bronze badges

10

Thêm chức năng này vào nguyên mẫu Sting:

String.prototype.count=function(c) { 
  var result = 0, i = 0;
  for(i;i

usage:

console.log("strings".count("s")); //2

Đã trả lời ngày 8 tháng 1 năm 2015 lúc 16:43Jan 8, 2015 at 16:43

2

Đơn giản, sử dụng phân chia để tìm ra số lần xuất hiện của một ký tự trong một chuỗi.split to find out the number of occurrences of a character in a string.

    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var count=-1,index=-2; index != -1; count++,index=str.indexOf(stringsearch,index+1) );
// returns 2
3 // cho 4 là số lượng chuỗi sau khi tách bằng dấu phẩy Delimiter

    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var count=-1,index=-2; index != -1; count++,index=str.indexOf(stringsearch,index+1) );
// returns 2
4 // cho 3 là số lượng dấu phẩy

Angabriel

4.9222 Huy hiệu vàng34 Huy hiệu bạc36 Huy hiệu đồng2 gold badges34 silver badges36 bronze badges

Đã trả lời ngày 29 tháng 5 năm 2018 lúc 20:44May 29, 2018 at 20:44

Hướng dẫn how do i count strings in javascript? - làm cách nào để đếm chuỗi trong javascript?

0

Bạn cũng có thể nghỉ chuỗi của mình và làm việc với nó như một mảng các phần tử bằng cách sử dụng

  • Array.prototype.filter()

(mainStr.split(",").length - 1) //3
0

Hoặc

  • Array.prototype.reduce()

(mainStr.split(",").length - 1) //3
1

Đã trả lời ngày 23 tháng 8 năm 2018 lúc 14:10Aug 23, 2018 at 14:10

Yosvel Quinteroyosvel QuinteroYosvel Quintero

17.7K4 Huy hiệu vàng38 Huy hiệu bạc43 Huy hiệu đồng4 gold badges38 silver badges43 bronze badges

2

Đây là một giải pháp tương tự, nhưng nó sử dụng

    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var count=-1,index=-2; index != -1; count++,index=str.indexOf(stringsearch,index+1) );
// returns 2
5

(mainStr.split(",").length - 1) //3
2

Như đã đề cập,

    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var count=-1,index=-2; index != -1; count++,index=str.indexOf(stringsearch,index+1) );
// returns 2
6 hoạt động nhanh hơn nhiều so với
    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var count=-1,index=-2; index != -1; count++,index=str.indexOf(stringsearch,index+1) );
// returns 2
7.

Hướng dẫn how do i count strings in javascript? - làm cách nào để đếm chuỗi trong javascript?

Vencovsky

25.2k11 Huy hiệu vàng92 Huy hiệu bạc146 Huy hiệu đồng11 gold badges92 silver badges146 bronze badges

Đã trả lời ngày 15 tháng 10 năm 2016 lúc 22:30Oct 15, 2016 at 22:30

Hướng dẫn how do i count strings in javascript? - làm cách nào để đếm chuỗi trong javascript?

Uladzimiruladzimiruladzimir

5.6196 Huy hiệu vàng30 Huy hiệu bạc 50 Huy hiệu Đồng6 gold badges30 silver badges50 bronze badges

Cập nhật: Điều này có thể đơn giản, nhưng nó không phải là nhanh nhất. Xem điểm chuẩn dưới đây.: This might be simple, but it is not the fastest. See benchmarks below.


Thật đáng kinh ngạc khi trong 13 năm, câu trả lời này đã không xuất hiện. Theo trực giác, có vẻ như nó sẽ nhanh nhất:

(mainStr.split(",").length - 1) //3
3

Nếu chỉ có hai loại ký tự trong chuỗi, thì điều này vẫn nhanh hơn:

(mainStr.split(",").length - 1) //3
4

Điểm chuẩn

(mainStr.split(",").length - 1) //3
5
(mainStr.split(",").length - 1) //3
6

Đã trả lời ngày 23 tháng 5 lúc 11:42May 23 at 11:42

Joe Lappjoe LappJoe Lapp

2.0053 huy hiệu vàng22 Huy hiệu bạc39 Huy hiệu đồng3 gold badges22 silver badges39 bronze badges

3

Nếu bạn đang sử dụng Lodash, phương thức _.countby sẽ làm điều này:

(mainStr.split(",").length - 1) //3
7

Phương pháp này cũng hoạt động với mảng:

(mainStr.split(",").length - 1) //3
8

Đã trả lời ngày 6 tháng 4 năm 2017 lúc 8:58Apr 6, 2017 at 8:58

GENG JIAWENGENG JIAWENGeng Jiawen

8.4242 Huy hiệu vàng46 Huy hiệu bạc37 Huy hiệu đồng2 gold badges46 silver badges37 bronze badges

1

OK, một người khác có regexp - có lẽ không nhanh, nhưng ngắn và dễ đọc hơn những người khác, trong trường hợp của tôi chỉ là

    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var count=-1,index=-2; index != -1; count++,index=str.indexOf(stringsearch,index+1) );
// returns 2
8 để đếm

(mainStr.split(",").length - 1) //3
9

Chỉ cần xóa mọi thứ không giống char của bạn nhưng nó trông không đẹp với một chuỗi làm đầu vào

Đã trả lời ngày 15 tháng 7 năm 2015 lúc 20:04Jul 15, 2015 at 20:04

Hướng dẫn how do i count strings in javascript? - làm cách nào để đếm chuỗi trong javascript?

Halfbithalfbithalfbit

3.5932 Huy hiệu vàng31 Huy hiệu bạc45 Huy hiệu Đồng2 gold badges31 silver badges45 bronze badges

Tôi đã thấy rằng cách tiếp cận tốt nhất để tìm kiếm một ký tự trong một chuỗi rất lớn (ví dụ như dài 1 000 000 ký tự) là sử dụng phương thức

    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var count=-1,index=-2; index != -1; count++,index=str.indexOf(stringsearch,index+1) );
// returns 2
9.

(mainStr.split("str").length - 1) //4
0

Bạn có thể thấy một bộ JSPERF khác để kiểm tra phương pháp này cùng với các phương thức tìm một ký tự khác trong một chuỗi.

Đã trả lời ngày 7 tháng 5 năm 2014 lúc 16:07May 7, 2014 at 16:07

1

Hiệu suất của Split vs Regexp

(mainStr.split("str").length - 1) //4
1

Đã trả lời ngày 30 tháng 6 năm 2016 lúc 8:30Jun 30, 2016 at 8:30

Clive Patersonclive PatersonClive Paterson

1.5831 Huy hiệu vàng14 Huy hiệu bạc10 Huy hiệu đồng1 gold badge14 silver badges10 bronze badges

Tôi đã thực hiện một cải tiến nhỏ về câu trả lời được chấp nhận, nó cho phép kiểm tra với sự kết hợp nhạy cảm/không nhạy cảm trường hợp và là một phương thức được gắn vào đối tượng chuỗi:

(mainStr.split("str").length - 1) //4
2

    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var i=count=0; i
0 là chuỗi để tìm kiếm (chẳng hạn như 'ex') và CIS là sự nhạy cảm của trường hợp, mặc định là sai, nó sẽ cho phép lựa chọn các trận đấu không nhạy cảm với trường hợp.


Để tìm kiếm chuỗi

    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var i=count=0; i
1 cho chữ cái trong trường hợp chữ thường
    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var i=count=0; i
2, bạn sẽ sử dụng:

(mainStr.split("str").length - 1) //4
3

    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var i=count=0; i
3 sẽ bằng
    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var i=count=0; i
4.


Nếu chúng tôi tìm kiếm cùng một chuỗi một lần nữa bằng cách sử dụng kết hợp không phân biệt chữ hoa chữ thường, bạn sẽ sử dụng:

(mainStr.split("str").length - 1) //4
4

Lần này,

    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var i=count=0; i
3 sẽ bằng
    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var i=count=0; i
6, vì vốn
    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var i=count=0; i
7 từ chuỗi được đưa vào tìm kiếm.

Đã trả lời ngày 6 tháng 5 năm 2015 lúc 16:51May 6, 2015 at 16:51

Hướng dẫn how do i count strings in javascript? - làm cách nào để đếm chuỗi trong javascript?

Cách dễ nhất tôi phát hiện ra ...

Example-

(mainStr.split("str").length - 1) //4
5

Đã trả lời ngày 9 tháng 1 năm 2017 lúc 11:13Jan 9, 2017 at 11:13

1

Đây là giải pháp của tôi. Rất nhiều giải pháp đã được đăng trước tôi. Nhưng tôi thích chia sẻ quan điểm của tôi ở đây.

(mainStr.split("str").length - 1) //4
6

Ở đây bạn tìm thấy bản sao của tôi

Đã trả lời ngày 28 tháng 7 năm 2019 lúc 4:33Jul 28, 2019 at 4:33

Tôi chỉ đã thực hiện một bài kiểm tra rất nhanh và bẩn trên Repress.it bằng cách sử dụng Node v7.4. Đối với một ký tự duy nhất, tiêu chuẩn cho vòng lặp là nhanh nhất:

Một số mã::

(mainStr.split("str").length - 1) //4
7

Kết quả từ một vài lần chạy::

(mainStr.split("str").length - 1) //4
8

CẬP NHẬT 2021-FEB-10: Đã sửa lỗi đánh máy trong repl.it Demo: Fixed typo in repl.it demo

Cập nhật 2020-Oct-24: Vẫn là trường hợp của Node.js 12 (chơi với chính nó ở đây): Still the case with Node.js 12 (play with it yourself here)

Đã trả lời ngày 20 tháng 9 năm 2017 lúc 3:07Sep 20, 2017 at 3:07

NuskoolernuskoolerNuSkooler

5.3131 Huy hiệu vàng32 Huy hiệu bạc57 Huy hiệu đồng1 gold badge32 silver badges57 bronze badges

2

(mainStr.split("str").length - 1) //4
9

Đã trả lời ngày 22 tháng 2 năm 2013 lúc 11:35Feb 22, 2013 at 11:35

Hướng dẫn how do i count strings in javascript? - làm cách nào để đếm chuỗi trong javascript?

wlfwlfwlf

8111 Huy hiệu vàng9 Huy hiệu bạc15 Huy hiệu đồng1 gold badge9 silver badges15 bronze badges

Tôi đã làm việc trên một dự án nhỏ yêu cầu một bộ đếm chuỗi phụ. Tìm kiếm các cụm từ sai cung cấp cho tôi không có kết quả, tuy nhiên sau khi viết triển khai của riêng tôi, tôi đã vấp phải câu hỏi này. Dù sao, đây là cách của tôi, nó có thể chậm hơn hầu hết ở đây nhưng có thể hữu ích cho ai đó:

("this is foo bar".match(/o/g)||[]).length;
// returns 2
0

http://jsfiddle.net/5ZzHt/1/

Vui lòng cho tôi biết nếu bạn thấy việc triển khai này là thất bại hoặc không tuân theo một số tiêu chuẩn! :)

Cập nhật bạn có thể muốn thay thế: You may want to substitute:

("this is foo bar".match(/o/g)||[]).length;
// returns 2
1

With:

("this is foo bar".match(/o/g)||[]).length;
// returns 2
2

Đọc thú vị Thảo luận trên

Đã trả lời ngày 12 tháng 2 năm 2014 lúc 14:04Feb 12, 2014 at 14:04

Hướng dẫn how do i count strings in javascript? - làm cách nào để đếm chuỗi trong javascript?

1

Cập nhật 06/10/2022 06/10/2022

Vì vậy, tôi đã chạy các thử nghiệm hoàn hảo khác nhau và nếu trường hợp sử dụng của bạn cho phép, có vẻ như việc sử dụng Split sẽ thực hiện tổng thể tốt nhất.

("this is foo bar".match(/o/g)||[]).length;
// returns 2
3

Tôi biết tôi đến muộn bữa tiệc ở đây nhưng tôi khá bối rối không ai trả lời điều này với cách tiếp cận cơ bản nhất. Một phần lớn các câu trả lời được cung cấp bởi cộng đồng cho câu hỏi này là dựa trên lặp lại nhưng tất cả đang di chuyển qua các chuỗi trên cơ sở peracter không thực sự hiệu quả.

Khi xử lý một chuỗi lớn chứa hàng ngàn ký tự đi qua mỗi nhân vật để có được số lượng xảy ra có thể trở nên khá ngoại lai không đề cập đến một bản sao mã. Các giải pháp dưới đây tận dụng lợi thế của

    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var i=count=0; i
8,
    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var i=count=0; i
9 và vòng lặp truyền thống đáng tin cậy. Những cách tiếp cận này ngăn cản chúng ta phải đi qua từng nhân vật và sẽ tăng tốc rất nhiều thời gian để tính xảy ra. Chúng tuân theo logic tương tự như bạn tìm thấy trong trình phân tích phân tích và máy phân tích từ vựng yêu cầu đi bộ chuỗi.

Sử dụng với lát cắt

Trong cách tiếp cận này, chúng tôi đang tận dụng

    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var i=count=0; i
8 và với mỗi trận đấu
    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var i=count=0; i
9, chúng tôi sẽ di chuyển qua chuỗi và loại bỏ các potions được tìm kiếm trước đó. Mỗi lần chúng tôi gọi
    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var i=count=0; i
9 Kích thước của chuỗi mà nó tìm kiếm sẽ nhỏ hơn.

("this is foo bar".match(/o/g)||[]).length;
// returns 2
4

Sử dụng với indexof từ vị trí

Tương tự như phương pháp đầu tiên sử dụng

    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var i=count=0; i
8 nhưng thay vì tăng cường chuỗi, chúng tôi đang tìm kiếm nó sẽ tận dụng tham số
    var str = "this is foo bar"
    str.split('').map( function(e,i){ if(e === 'o') return i;} )
                 .filter(Boolean)
    //>[9, 10]
    [9, 10].length
    // returns 2
5 trong phương thức
    var stringsearch = "o"
       ,str = "this is foo bar";
    for(var i=count=0; i
9.

("this is foo bar".match(/o/g)||[]).length;
// returns 2
5

Cá nhân, tôi đi theo cách tiếp cận thứ hai so với lần đầu tiên, nhưng cả hai đều ổn và hiệu suất khi xử lý các chuỗi lớn nhưng cũng có kích thước nhỏ hơn.

Đã trả lời ngày 5 tháng 12 năm 2021 lúc 12:50Dec 5, 2021 at 12:50

Hướng dẫn how do i count strings in javascript? - làm cách nào để đếm chuỗi trong javascript?

User_coderUser_coderUser_coder

3991 Huy hiệu vàng5 Huy hiệu bạc20 Huy hiệu đồng1 gold badge5 silver badges20 bronze badges

Những gì về String.Split (mong muốn thay thế) .length-1

Example:

var str = "Hellow làm thế nào là cuộc sống"; var len = str.split ("h"). chiều dài-1; sẽ đưa số 2 cho ký tự "H" trong chuỗi trên;

Đã trả lời ngày 24 tháng 5 năm 2016 lúc 8:36May 24, 2016 at 8:36

Phương pháp nhanh nhất dường như thông qua toán tử chỉ mục:

("this is foo bar".match(/o/g)||[]).length;
// returns 2
6

Hoặc là một hàm nguyên mẫu:

("this is foo bar".match(/o/g)||[]).length;
// returns 2
7

Đã trả lời ngày 21 tháng 1 năm 2018 lúc 23:12Jan 21, 2018 at 23:12

Hướng dẫn how do i count strings in javascript? - làm cách nào để đếm chuỗi trong javascript?

zoran404zoran404zoran404

1.4922 Huy hiệu vàng20 Huy hiệu bạc33 Huy hiệu Đồng2 gold badges20 silver badges33 bronze badges

("this is foo bar".match(/o/g)||[]).length;
// returns 2
8

Đây là một chức năng rất ngắn.

Đã trả lời ngày 24 tháng 11 năm 2021 lúc 4:44Nov 24, 2021 at 4:44

Hướng dẫn how do i count strings in javascript? - làm cách nào để đếm chuỗi trong javascript?

DerpyCoderDerPyCoderDerpyCoder

1191 Huy hiệu bạc6 Huy hiệu đồng1 silver badge6 bronze badges

Sau đây sử dụng một biểu thức chính quy để kiểm tra độ dài. Testex đảm bảo bạn không có các ký tự không phải là COMM liên tiếp hoặc lớn hơn. Nếu nó vượt qua bài kiểm tra, thì nó sẽ tiến hành phân chia chuỗi. Đếm dấu phẩy cũng đơn giản như việc đếm các mã thông báo trừ đi.

("this is foo bar".match(/o/g)||[]).length;
// returns 2
9

Đã trả lời ngày 19 tháng 5 năm 2009 lúc 6:31May 19, 2009 at 6:31

Hướng dẫn how do i count strings in javascript? - làm cách nào để đếm chuỗi trong javascript?

Jonathan Fingerlandjonathan FingerlandJonathan Fingland

55.3K11 Huy hiệu vàng83 Huy hiệu bạc78 Huy hiệu đồng11 gold badges83 silver badges78 bronze badges

Tôi đang sử dụng node.js v.6.0.0 và nhanh nhất là phương pháp có chỉ mục (phương thức thứ 3 trong câu trả lời của lo Sauer).

Thứ hai là:

"this is foo bar".split("o").length - 1;
// returns 2
0

Đã trả lời ngày 1 tháng 6 năm 2016 lúc 23:16Jun 1, 2016 at 23:16

Hướng dẫn how do i count strings in javascript? - làm cách nào để đếm chuỗi trong javascript?

Marc K.Marc K.Marc K.

591 Huy hiệu bạc7 Huy hiệu đồng1 silver badge7 bronze badges

Và có:

"this is foo bar".split("o").length - 1;
// returns 2
1

Làm việc với số nguyên quá!

Đã trả lời ngày 24 tháng 7 năm 2018 lúc 7:51Jul 24, 2018 at 7:51

Hướng dẫn how do i count strings in javascript? - làm cách nào để đếm chuỗi trong javascript?

Đây là một loại nhanh như

    var str = "this is foo bar"
    str.split('').map( function(e,i){ if(e === 'o') return i;} )
                 .filter(Boolean)
    //>[9, 10]
    [9, 10].length
    // returns 2
7 và các phương thức thay thế, nhanh hơn một chút so với phương pháp Regex (trong cả Chrome và Firefox).

"this is foo bar".split("o").length - 1;
// returns 2
2

Hướng dẫn how do i count strings in javascript? - làm cách nào để đếm chuỗi trong javascript?

Andrew

5.1261 Huy hiệu vàng46 Huy hiệu bạc64 Huy hiệu đồng1 gold badge46 silver badges64 bronze badges

Đã trả lời ngày 12 tháng 4 năm 2017 lúc 20:14Apr 12, 2017 at 20:14

7

"this is foo bar".split("o").length - 1;
// returns 2
3

Việc chia thành một mảng cho chúng ta một số yếu tố, sẽ luôn luôn nhiều hơn 1 so với số lượng phiên bản của nhân vật. Đây có thể không phải là bộ nhớ hiệu quả nhất, nhưng nếu đầu vào của bạn luôn luôn nhỏ, đây là một cách thẳng thắn và dễ hiểu để làm điều đó.

Nếu bạn cần phân tích các chuỗi rất lớn (lớn hơn vài trăm ký tự) hoặc nếu đây là một vòng lặp cốt lõi xử lý khối lượng dữ liệu lớn, tôi sẽ đề xuất một chiến lược khác.

Đã trả lời ngày 6 tháng 2 năm 2021 lúc 17:46Feb 6, 2021 at 17:46

Hướng dẫn how do i count strings in javascript? - làm cách nào để đếm chuỗi trong javascript?

1

Giải pháp của tôi:

"this is foo bar".split("o").length - 1;
// returns 2
4

Đã trả lời ngày 9 tháng 4 năm 2013 lúc 1:17Apr 9, 2013 at 1:17

Hướng dẫn how do i count strings in javascript? - làm cách nào để đếm chuỗi trong javascript?

GeregereGere

2.01423 Huy hiệu bạc23 Huy hiệu đồng23 silver badges23 bronze badges

1

Tôi biết đây có thể là một câu hỏi cũ nhưng tôi có một giải pháp đơn giản cho người mới bắt đầu cấp thấp trong JavaScript.

Là người mới bắt đầu, tôi chỉ có thể hiểu một số giải pháp cho câu hỏi này vì vậy tôi đã sử dụng hai vòng lặp để kiểm tra từng ký tự so với mọi ký tự khác trong chuỗi, tăng một biến đếm cho mỗi ký tự được tìm thấy bằng ký tự đó.FOR loops to check each character against every other character in the string, incrementing a count variable for each character found that equals that character.

Tôi đã tạo một đối tượng trống mới trong đó mỗi khóa thuộc tính là một ký tự và giá trị là số lần mỗi ký tự xuất hiện trong chuỗi (đếm).

Chức năng ví dụ:-

"this is foo bar".split("o").length - 1;
// returns 2
5

Đã trả lời ngày 17 tháng 10 năm 2017 lúc 7:35Oct 17, 2017 at 7:35

Hướng dẫn how do i count strings in javascript? - làm cách nào để đếm chuỗi trong javascript?

Tôi tin rằng bạn sẽ tìm thấy giải pháp dưới đây rất ngắn, rất nhanh, có thể làm việc với các chuỗi rất dài, có thể hỗ trợ nhiều tìm kiếm ký tự, chứng minh lỗi và có thể xử lý các tìm kiếm chuỗi trống.

"this is foo bar".split("o").length - 1;
// returns 2
6

Ví dụ sử dụng:

"this is foo bar".split("o").length - 1;
// returns 2
7

Mã trên sửa lỗi hiệu suất chính trong Jakub Wawszchoth rằng mã giữ cho một trận đấu ngay cả sau khi Indexof nói rằng không có gì và bản thân phiên bản của anh ta không hoạt động vì anh ta quên đưa ra các tham số đầu vào chức năng.

Đã trả lời ngày 24 tháng 11 năm 2017 lúc 18:56Nov 24, 2017 at 18:56

Hướng dẫn how do i count strings in javascript? - làm cách nào để đếm chuỗi trong javascript?

Jack Gjack gJack G

4.1982 Huy hiệu vàng38 Huy hiệu bạc 50 Huy hiệu Đồng2 gold badges38 silver badges50 bronze badges

Làm thế nào để bạn tìm thấy số lượng của một chuỗi?

Cách tiếp cận: Đầu tiên, chúng tôi chia chuỗi theo khoảng trắng trong a. Sau đó, lấy một số lượng biến số = 0 và trong mọi điều kiện thực sự, chúng tôi tăng số lượng lên 1. Bây giờ chạy một vòng lặp ở độ dài 0 đến chiều dài của chuỗi và kiểm tra xem chuỗi của chúng tôi có bằng từ này không.

Có một phương pháp đếm trong JavaScript?

JS | Đếm () hàm. Hàm số () được sử dụng để đếm số lượng bộ sưu tập trong phần tử. Trong JavaScript, mảng trước tiên được chuyển đổi thành một bộ sưu tập và sau đó chức năng được áp dụng cho bộ sưu tập. Giá trị trả về: Trả về số lượng của phần tử trong bộ sưu tập đó.The count() function is used to count the number of collections in the element. In JavaScript, the array is first converted to a collection and then the function is applied to the collection. Return Value: Returns the count of the element in that collection.

Làm thế nào để bạn đếm một cái gì đó trong JavaScript?

Nhiều ví dụ hơn..
Gọi Console.Count () Hai lần: Bảng điều khiển.đếm();Bảng điều khiển.đếm();.
Gọi Console.Count hai lần, với nhãn: Bảng điều khiển.Đếm ("Mylabel");Bảng điều khiển.Đếm ("Mylabel") ;.
Để xóa nhãn, sử dụng "" làm tham số: Bảng điều khiển.đếm("");Bảng điều khiển.đếm("");.

Làm cách nào để đếm các chữ cái trong JavaScript?

Bản thử trực tiếp:..
Hàm char_count (str, chữ cái).
var letter_count = 0 ;.
for (var vị trí = 0; vị trí
if (str. charat (vị trí) == thư).
Letter_Count += 1 ;.