今天偶然同事问了一个问题,如何取到字符串中的每个值,我第一瞬间反应的是,用下标撒,循环打印撒,不就行了,然而并不行,因为是字符串并不是数组,一瞬间就尴尬了,竟然不会做,后面就查阅了一下资料,看来自己的虽然做了这么久了,但是有些基础都忘了,好尴尬,接下来就介绍解决问题的流程,先来说问题
给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。
J = “aA”
S=“aAbBcCdDa”
你拿到第一瞬间是怎么想的,肯定是循环 S ,然后在判断 J 中的值是否等于 S 中的值,然后得到数量,就可以知道你手中拥有多少宝石,这个思路是绝对正确的。难点就是在于 如何去循环字符串中的值,其实很简单,就是基础里面的,这里就是w3c中的方法 http://www.w3school.com.cn/jsref/jsref_charAt.asp (js不愧是强大的语言)
要是你不看方法,那你就来看接下来的
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JS算法基础</title>
</head>
<body>
</body>
<script>
let J = 'aA'
let S = 'aAbBcCdDa'
function title(J, S) {
for (let i = 0; i < S.length; i++) {
for (let j = 0; j < J.length; j++) {
if(J.charAt(j) === S.charAt(i)){
console.log(i);
//这里判断等于最好是用恒等于,然后你就可以得到循环判断相等的, console.log(i); 最终的值就是你所拥有的宝石数量了啊
}
}
}
}
title(J, S);
</script>
</html>
总结了就是。其实 js的算法基本都是依靠的最基础的东西,我会慢慢分享我重温js 的基础的路程写出来,虽然这个算法很简单,但是也算是进步了。哈哈哈,希望我的文章对你有帮助,想知道的,我也会帮你解决,虽然我也是菜鸟