Tôi mới sử dụng mã hóa và đã được đưa ra câu hỏi này;
Tạo một hàm có một chuỗi với một mớ bòng bong và số. Nó sẽ thêm tất cả các số xuất hiện trong chuỗi và trả về tổng số.
E.g. 'foo5bar6cat1' => 12
'foo99cat' => 18
Mẹo: Đối với cái này, có thể hữu ích khi biết rằng giá trị
function sumDigitsFromString[str] {
let nums = []
let sum = 0
for [let i = 0; i < str.length; i++] {
if [typeOf [arr[i]] === "number"] {
nums.push[str[i]]
}
}
for [let i = 0; i < nums.length; i++]{
sum.push[nums[i] + sum]
}
return sum
}
5 trong JavaScript hoạt động kỳ lạ. Ví dụ: nếu bạn làm function sumDigitsFromString[str] {
let nums = []
let sum = 0
for [let i = 0; i < str.length; i++] {
if [typeOf [arr[i]] === "number"] {
nums.push[str[i]]
}
}
for [let i = 0; i < nums.length; i++]{
sum.push[nums[i] + sum]
}
return sum
}
6, nó sẽ cho bạn biết đó là function sumDigitsFromString[str] {
let nums = []
let sum = 0
for [let i = 0; i < str.length; i++] {
if [typeOf [arr[i]] === "number"] {
nums.push[str[i]]
}
}
for [let i = 0; i < nums.length; i++]{
sum.push[nums[i] + sum]
}
return sum
}
7. Odd, hả?Mã mà tôi đã viết là thế này;
function sumDigitsFromString[str] {
let nums = []
let sum = 0
for [let i = 0; i < str.length; i++] {
if [typeOf [arr[i]] === "number"] {
nums.push[str[i]]
}
}
for [let i = 0; i < nums.length; i++]{
sum.push[nums[i] + sum]
}
return sum
}
Bài kiểm tra mà mã của tôi đang được chạy là điều này;
describe["sumDigitsFromString", [] => {
it["picks out a digit from a string and returns", [] => {
expect[sumDigitsFromString["foo5foo"]].to.equal[5];
}];
it["sums multiple digits from a string", [] => {
expect[sumDigitsFromString["5foo5foo"]].to.equal[10];
}];
it["returns a seum of several digits in a string", [] => {
expect[sumDigitsFromString["hello1world5this3is2a2string"]].to.equal[13].;
}];
}];
Liều lượng ai có bất kỳ đề xuất về cách sửa mã của tôi?
Chúng tôi sẽ viết một hàm gọi là Tính tổng số các số nhận được trong một chuỗi phân loại bằng dấu phẩy.
Ảnh của Ashkan forouzani trên unplash
8 sẽ chấp nhận một chuỗi, function sumDigitsFromString[str] {
let nums = []
let sum = 0
for [let i = 0; i < str.length; i++] {
if [typeOf [arr[i]] === "number"] {
nums.push[str[i]]
}
}
for [let i = 0; i < nums.length; i++]{
sum.push[nums[i] + sum]
}
return sum
}
9, như một đối số. Chuỗi này sẽ chứa sự kết hợp của số nguyên và phao được phân tách bằng dấu phẩy.function sumDigitsFromString[str] {
let nums = []
let sum = 0
for [let i = 0; i < str.length; i++] {
if [typeOf [arr[i]] === "number"] {
nums.push[str[i]]
}
}
for [let i = 0; i < nums.length; i++]{
sum.push[nums[i] + sum]
}
return sum
}
Mục tiêu của hàm là tính tổng của tất cả các số trong chuỗi.
Example:
sumStr["1.5, 2.3, 3.1, 4, 5.5, 6, 7, 8, 9, 10.9"];//output: 57.3
Trước khi chúng tôi làm bất cứ điều gì với các số trong chuỗi, trước tiên chúng tôi sẽ chia chuỗi tại dấu phẩy và chuyển đổi nó thành một mảng. Chúng tôi gán mảng đó cho một biến gọi là
describe["sumDigitsFromString", [] => {
it["picks out a digit from a string and returns", [] => {
expect[sumDigitsFromString["foo5foo"]].to.equal[5];
}];
it["sums multiple digits from a string", [] => {
expect[sumDigitsFromString["5foo5foo"]].to.equal[10];
}];
it["returns a seum of several digits in a string", [] => {
expect[sumDigitsFromString["hello1world5this3is2a2string"]].to.equal[13].;
}];
}];
0.let strArr = str.split[","];
Tiếp theo, chúng tôi sẽ sử dụng phương thức
describe["sumDigitsFromString", [] => {
it["picks out a digit from a string and returns", [] => {
expect[sumDigitsFromString["foo5foo"]].to.equal[5];
}];
it["sums multiple digits from a string", [] => {
expect[sumDigitsFromString["5foo5foo"]].to.equal[10];
}];
it["returns a seum of several digits in a string", [] => {
expect[sumDigitsFromString["hello1world5this3is2a2string"]].to.equal[13].;
}];
}];
1 để tính tổng của tất cả các số trong mảng. Vì các số ban đầu là chuỗi, chúng tôi cần chuyển đổi mọi thứ thành một số bằng cách sử dụng describe["sumDigitsFromString", [] => {
it["picks out a digit from a string and returns", [] => {
expect[sumDigitsFromString["foo5foo"]].to.equal[5];
}];
it["sums multiple digits from a string", [] => {
expect[sumDigitsFromString["5foo5foo"]].to.equal[10];
}];
it["returns a seum of several digits in a string", [] => {
expect[sumDigitsFromString["hello1world5this3is2a2string"]].to.equal[13].;
}];
}];
2. Điều này là vì vậy chức năng gọi lại của chúng tôi có thể tính tổng.Chúng tôi gán tổng số cho một biến gọi là
describe["sumDigitsFromString", [] => {
it["picks out a digit from a string and returns", [] => {
expect[sumDigitsFromString["foo5foo"]].to.equal[5];
}];
it["sums multiple digits from a string", [] => {
expect[sumDigitsFromString["5foo5foo"]].to.equal[10];
}];
it["returns a seum of several digits in a string", [] => {
expect[sumDigitsFromString["hello1world5this3is2a2string"]].to.equal[13].;
}];
}];
3.let sum = strArr.reduce[function[total, num]{
return parseFloat[total] + parseFloat[num];
}];
Bây giờ chúng tôi có tổng của chúng tôi, chúng tôi có thể trả lại nó.
return sum;
Đây là chức năng đầy đủ:
Nếu bạn thấy thuật toán này hữu ích, hãy xem các bài viết giải pháp thuật toán JavaScript khác của tôi:
Đọc thêm tại Plainenglish.ioplainenglish.io
Thêm chuỗi dưới dạng số trong javascript #
Để thêm chuỗi dưới dạng số:
- Chuyển từng chuỗi đến đối tượng
4 để chuyển đổi nó thành một số.describe["sumDigitsFromString", [] => { it["picks out a digit from a string and returns", [] => { expect[sumDigitsFromString["foo5foo"]].to.equal[5]; }]; it["sums multiple digits from a string", [] => { expect[sumDigitsFromString["5foo5foo"]].to.equal[10]; }]; it["returns a seum of several digits in a string", [] => { expect[sumDigitsFromString["hello1world5this3is2a2string"]].to.equal[13].; }]; }];
- Sử dụng toán tử bổ sung [+], ví dụ:
5.describe["sumDigitsFromString", [] => { it["picks out a digit from a string and returns", [] => { expect[sumDigitsFromString["foo5foo"]].to.equal[5]; }]; it["sums multiple digits from a string", [] => { expect[sumDigitsFromString["5foo5foo"]].to.equal[10]; }]; it["returns a seum of several digits in a string", [] => { expect[sumDigitsFromString["hello1world5this3is2a2string"]].to.equal[13].; }]; }];
- Toán tử bổ sung sẽ trả về tổng của các số.
Copied!
const str1 = '5'; const str2 = '15'; const result = Number[str1] + Number[str2]; console.log[result]; // 👉️ 20 console.log[typeof result]; // 👉️ number
Chúng tôi đã sử dụng đối tượng số để chuyển đổi hai chuỗi thành số và thêm chúng bằng toán tử bổ sung [+].
Lưu ý rằng tất cả các chuỗi phải được chuyển đổi thành các số trước khi sử dụng toán tử bổ sung [+]. Mặt khác, nó chuyển đổi số thành một chuỗi và nối các chuỗi.
Copied!
console.log[5 + '10']; // 👉️ 510
Bạn có thể sử dụng phương pháp này để thêm nhiều chuỗi làm số.
Copied!
const str1 = '5'; const str2 = '10'; const str3 = '15'; const result = Number[str1] + Number[str2] + Number[str3]; console.log[result]; // 👉️ 30
Một cách rất phổ biến khác để làm điều này là sử dụng toán tử Unary Plus [+].
Thêm chuỗi làm số bằng cách sử dụng unary plus [+] #
Để thêm chuỗi làm số, hãy sử dụng toán tử Unary Plus [+] để chuyển đổi từng chuỗi thành một số và thêm các số bằng toán tử bổ sung [+], ví dụ:
6describe["sumDigitsFromString", [] => {
it["picks out a digit from a string and returns", [] => {
expect[sumDigitsFromString["foo5foo"]].to.equal[5];
}];
it["sums multiple digits from a string", [] => {
expect[sumDigitsFromString["5foo5foo"]].to.equal[10];
}];
it["returns a seum of several digits in a string", [] => {
expect[sumDigitsFromString["hello1world5this3is2a2string"]].to.equal[13].;
}];
}];
function sumDigitsFromString[str] {
let nums = []
let sum = 0
for [let i = 0; i < str.length; i++] {
if [typeOf [arr[i]] === "number"] {
nums.push[str[i]]
}
}
for [let i = 0; i < nums.length; i++]{
sum.push[nums[i] + sum]
}
return sum
}
0Toán tử Unary Plus [+] cố gắng chuyển đổi giá trị thành một số.
Điều này trở nên khó đọc vì chúng ta có 2 toán tử Plus [+] và toán tử bổ sung [+].
Tôi sẽ không khuyên bạn nên sử dụng phương pháp này. Tuy nhiên, nhà điều hành Unary Plus thường được sử dụng bởi các nhà phát triển, vì vậy điều tốt là biết.
Cả hai ví dụ này chuyển đổi chuỗi thành một số. Người ta sử dụng phương pháp Unary Plus [+] và phương pháp khác sử dụng đối tượng
describe["sumDigitsFromString", [] => {
it["picks out a digit from a string and returns", [] => {
expect[sumDigitsFromString["foo5foo"]].to.equal[5];
}];
it["sums multiple digits from a string", [] => {
expect[sumDigitsFromString["5foo5foo"]].to.equal[10];
}];
it["returns a seum of several digits in a string", [] => {
expect[sumDigitsFromString["hello1world5this3is2a2string"]].to.equal[13].;
}];
}];
4.function sumDigitsFromString[str] {
let nums = []
let sum = 0
for [let i = 0; i < str.length; i++] {
if [typeOf [arr[i]] === "number"] {
nums.push[str[i]]
}
}
for [let i = 0; i < nums.length; i++]{
sum.push[nums[i] + sum]
}
return sum
}
1Nếu chuỗi của bạn kết thúc với các ký tự, bạn phải sử dụng phương thức
8 thay thế.describe["sumDigitsFromString", [] => {
it["picks out a digit from a string and returns", [] => {
expect[sumDigitsFromString["foo5foo"]].to.equal[5];
}];
it["sums multiple digits from a string", [] => {
expect[sumDigitsFromString["5foo5foo"]].to.equal[10];
}];
it["returns a seum of several digits in a string", [] => {
expect[sumDigitsFromString["hello1world5this3is2a2string"]].to.equal[13].;
}];
}];
function sumDigitsFromString[str] {
let nums = []
let sum = 0
for [let i = 0; i < str.length; i++] {
if [typeOf [arr[i]] === "number"] {
nums.push[str[i]]
}
}
for [let i = 0; i < nums.length; i++]{
sum.push[nums[i] + sum]
}
return sum
}
2Các chuỗi của chúng tôi kết thúc với các ký tự không phải là số, vì vậy chúng tôi không thể chuyển đổi trực tiếp chúng thành các số.
Thay vào đó, chúng tôi đã sử dụng phương pháp ParseInt.
Phương thức lấy 2 tham số sau:
- một chuỗi chúng tôi muốn phân tích cú pháp vào một số
- radix - giá trị mặc định không phải là 10, vì vậy chúng tôi phải vượt qua nó một cách rõ ràng
Một cách dễ dàng để suy nghĩ về phương pháp
describe["sumDigitsFromString", [] => {
it["picks out a digit from a string and returns", [] => {
expect[sumDigitsFromString["foo5foo"]].to.equal[5];
}];
it["sums multiple digits from a string", [] => {
expect[sumDigitsFromString["5foo5foo"]].to.equal[10];
}];
it["returns a seum of several digits in a string", [] => {
expect[sumDigitsFromString["hello1world5this3is2a2string"]].to.equal[13].;
}];
}];
8 là - chúng ta lấy càng nhiều chữ số càng tốt từ đầu chuỗi, bỏ qua phần còn lại và chuyển đổi giá trị thành một số.function sumDigitsFromString[str] {
let nums = []
let sum = 0
for [let i = 0; i < str.length; i++] {
if [typeOf [arr[i]] === "number"] {
nums.push[str[i]]
}
}
for [let i = 0; i < nums.length; i++]{
sum.push[nums[i] + sum]
}
return sum
}
3Điều này sẽ không hoạt động nếu các ký tự không phải là đầu tiên ở đầu chuỗi.
function sumDigitsFromString[str] {
let nums = []
let sum = 0
for [let i = 0; i < str.length; i++] {
if [typeOf [arr[i]] === "number"] {
nums.push[str[i]]
}
}
for [let i = 0; i < nums.length; i++]{
sum.push[nums[i] + sum]
}
return sum
}
4Đọc thêm #
- Concatenate một chuỗi với một biến trong javascript
- Chuyển đổi chuỗi thành mảng số trong javascript