选择排序:
思想:
1.N个数,进行n-1次选择
2.每次排序,在未排序中找最小数下标,与前面的数交换位置
<script>
var arr = [89, 98, 78, 68, 76]
var n = arr.length
//外层循环
for (var i = 0; i < n - 1; i++) {
var minIndex = i//假设最小数下标是第一个数
for (var j = i+1; j < n; j++) {
if (arr[j] < arr[minIndex]) { //arr[2]<arr[1]
minIndex = j //minIndex:2,3
}
}
console.log('最小下标', minIndex)
//交换位置
var temp = arr[i]
arr[i] = arr[minIndex]
arr[minIndex] = temp
console.log(arr)
}
console.log(arr)
</script>
数组去重
这里介绍三种
<script>
var arr = [9, 2, 5, 2, 8, 2, 5]
var newArr = [] //1.存储去重后元素
// 2. 遍历原数组
for (var i = 0; i < arr.length; i++) {
// 3. 判断新数组中是否有原数组当前元素,如果没有,存储到新数组中
// if(newArr.indexOf(arr[i]) == -1){
// newArr.push(arr[i])
// }
// if(newArr.includes(arr[i]) == false){
if (!newArr.includes(arr[i])) {
newArr.push(arr[i])
}
}
console.log(newArr)
//用set去重,代码最为简洁
function newArr(arr) {
return Array.from(new Set(arr))
}
var arr = [9, 2, 5, 2, 8, 2, 5]
console.log(newArr(arr))
//双层for循环+Splice
// 外层循环数据遍历所有元素,内层循环依次判断后面元素是否与外层相同,如果同则截取掉
function test3(){
var arr = [9, 2, 5, 2, 8, 2, 5]
for(var i=0;i<arr.length;i++){
var item=arr[i]
for(var j=i+1;j<arr.length;j++){
if(item==arr[j]){
arr.splice(j,1)
// 考虑三个相同的元素连着
j--
}
}
}
console.log(arr)
}
test3()
</script>
例题:对一组学生的百分制成绩[98,78,89,77,69,59,85,100,93,81], 分别统计出100分、90~99分、80~89分、…0~9分的人数。
function getNumberByScore() {
var stuScores = [98, 78, 89, 77, 69, 59, 85, 100, 93, 81]
//定义一个存储各分数段人数的数组长度为11,初始值为0
var num = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
for (var i = 0; i < stuScores.length; i++) {
var score = parseInt(stuScores[i] / 10) // 9
num[score]++
}
for (var j = 0; j < num.length; j++) {
if (j == 10) {
console.log('100分人数 ' + num[j])
} else {
console.log(j * 10 + '-' + ((j + 1) * 10 - 1) + '分人数 ' + num[j])
}
}
}
getNumberByScore()
字符串:
1.创建字符串
字面量方式创建:
var str='hello'
console.log(str)
构造函数方式:
var str= new string ('hello')
console.log(str)
2.由一系列字符构成,每个字符对应自己的下标,和数组类似。下标从0开始!
3.访问字符串字符 console.log(srt[0]),注意字符串只能访问同,不能该变和赋值。
4.length字符串长度
5.字符口串的遍历
for(var i=0;i<str,length;l++){
console.log(str.length)
}
6.基本数据类型,复杂数据类型(对象类型)
属性和方法
通过点语句调用:
当使用.语句调用属性和方法时,自动转换为复杂数据类型,使用完后会转为基本数据类型,t称为包装类型:
var str='hello'
基本数据类型 ------> 复杂数据类:(字符串对象)
string.lenth
字符串常用方法:
假如:var str='hello'
charAt:根据下标返回字符
console.log('charAt:',str.charAt (0))
indexOf :返回字符在字符串的下标,不存在则返回-1
console.log('indexOf: ', str.indexOf (e))
substring:(从哪个索引开始,到哪个索引结束)
包含开始索引,不包括结束的索引位置!!!
console.log('substing: ',str.substing(1,3))-->el
substr:用来截取字符串,语法:substr(从哪个索引开始,截取多少个)
var newstr=str.substr(1,3)
replace:(原字符串,新字符串)用于在字符串中用新字符替换原字符
var newstr=str.replace('hello','hi')
console.log('newstr:' ,newstr)
split(‘分隔字符’),返回数组
function testSplit(){
var str='javascript-css-html'
var arr=str.split('-')
console.log(arr)
}
testSplit()
打印输出:【'javascript‘,’css‘,’html' 】
concat:字符串拼接
var str='hello'
var newStr=str.concat('world')
console.log('newStr',newStr)
trim():去掉字符两端的空白,返回去掉空格的新字符串
var str=' jack '
console.log('str :', str.length)
var newStr=str.trim()
console.log('newStr: ',newStr.length)
startsWith():判断字符串是否以字符开始,返回true||false
function testStartsWith(){
var str='hello'
var isOk=str.startsWith('he')
console.log('isok',isOk)
}
testStartsWith()
endsWith():判断字符串是否以字符j结束,返回true||false
function testEndsWith(){
var str='adfnkajlhf'
var isOk=str.endsWith('f')
console.log('isok',isOk)
}
testEndsWith()
toLowerCase:把字符串转为小写
function testLowerCase(){
var str='HELLO'
var newStr=str.toLocaleLowerCase()
console.log(newStr)
}
testLowerCase()
toUpperCase把字符串转为大写
function testLowerCase(){
var str='hello'
var newStr=str.toLocaleUpperCase()
console.log(newStr)
}
testLowerCase()
练习一:把字符串‘abcdefg’===>字符串'gfedcba'
思考:数组有反转函数,但是字符串没有,所以要先转化为数组,再通过数组转化为字符串
<script>
var str='abcdefg'
var arr=str.split('')
var newArr=arr.reverse()
var newStr=newArr.join('')
console.log('newsStr:',newsStr)
</script>
// 方案二:
// 倒序输出字符串,拼接字符串
var str='abcdefg'
var s=''
for(var i=str.length-1;i>=0;i--){
s+=str[i]
}
console.log( 's:',s)
练习二: 已知字符串 'abcefMMaveqeripMMaeererMMda' 替换大字MM为*号
var str='abcefMMaveqeripMMaeererMMda'
while(str.indexOf('MM')!==-1 ){
str=str.replace('***')
}
console.log('str',str)
练习三:'html-css-javascript'=>['html','css','javascript']
function chatAtTest()
var str = 'html-css-javascript'
var line=' '
var arr=[]
for(var i=0;i<str.length;i++) {
var chars= chatAt(i)
if(chars!='-')
{
line=line+chars
}
else{
if( line !=' ')
arr.push(line)
line=' '
}
}
if(i=str.length-1&&line!=''){
arr.push(line)
line=' '
}
}
console.log(arr)
}
chatAtTest()
如有错误,请指正!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。