Platform
Resources
Pricing
Sign in
Get started
specialCoder
前端 摄影 文学
Workspace
Fork
Published
By
specialCoder
Edited
Aug 26, 2020
Insert cell
md
`# javascript面试`
Insert cell
md
`1. 查找字符串中连续重复出现次数最多的字符,并返回该子串`
Insert cell
str
=
'aabbbbbcdahdddddddd'
;
Insert cell
md
`正则表达式实现`
Insert cell
function
search
(
str
)
{
return
str
.
match
(
/(\w)(\1+)?/g
)
.
sort
(
(
x
,
y
)
=>
y
.
length
-
x
.
length
)
[
0
]
;
}
// \1:严格匹配和第一个子串内容相同(内容一模一样而不是模式一样)的字符串,可实现分组捕获匹配的字符的功能
// (\1+)? 不仅支持可有可无,而且在有的情况下可实现尽可能多的匹配
Insert cell
search
(
str
)
;
Insert cell
md
`使用循环`
Insert cell
searchFor
=
(
data
)
=>
{
let
tmp
=
''
;
// 记录连续字符串
const
result
=
[
]
;
// 连续字符串组成的数组
[
...
data
,
''
]
.
reduce
(
(
pre
,
cur
)
=>
{
// 末尾额外添加''是为了能访问到最后一个元素
if
(
pre
!==
cur
)
{
result
.
push
(
tmp
)
;
tmp
=
cur
;
}
else
{
tmp
+=
cur
;
// 会访问第一个元素
}
return
cur
;
}
,
data
[
0
]
)
// 初始值data[0]是为了访问到第一个元素
return
result
.
sort
(
(
a
,
b
)
=>
{
return
b
.
length
-
a
.
length
;
}
)
[
0
]
;
;
}
;
Insert cell
searchFor
(
str
)
;
Insert cell
md
`2. 实现求千分位函数`
Insert cell
md
`
/(\d)(?=(?:\d{3})+$)/g 讲解
- 实现3个数字一组,有>=1组: (\d{3}+)
- 以上面格式结尾 (\d{3}+)这样只会匹配最有一组3个数字,加上?:就能完整 ?:\d{3})+$
- 以上面为后缀:?= 实现:(\d)(?=(?:\d{3})+$)
`
Insert cell
function
formatNumber
(
num
)
{
if
(
(
num
||
''
)
.
toString
(
)
.
indexOf
(
'.'
)
!==
-
1
)
{
return
num
.
toLocaleString
(
)
;
}
const
pattern
=
/(\d)(?=(?:\d{3})+$)/g
;
return
num
?
(
num
||
''
)
.
toString
(
)
.
replace
(
pattern
,
'$1,'
)
:
`${
num
}`
;
}
Insert cell
formatNumber
(
123424325425
)
;
Insert cell
Purpose-built for displays of data
Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Try it for free
Learn more
Fork
View
Export
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
str
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
search
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
searchFor
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
formatNumber
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML