数组-字符串对象

数组

一、冒泡排序

//冒泡排序
var arr=[23,9,78,6,45];
//外层循环,控制比较的轮数,比元素的个数少1
for (var i=1;i<arr.length;i++){
	//长度是已知,每轮比较的次数
	// 1 5 4
	// 2 5 3
	// 3 5 2
	// 4 5 1
	//内轮循环,控制每轮比较的次数,条件=数组长度-i
	for(var j =0;j<arr.length-i;j++){
		//j是下标,用当前的下标对应的元素和下一个元素进行比较
		//下一个元素下标j+1
		//arr[j]  arr[j+1]
		//变量交换
		if(arr[j]>arr[j+1]){
			var c =arr[j];
			arr[j]=arr[j+1];
			arr[j+1] =c;
		}
	}
}
//循环结束交换也就结束
console.log(arr);

二、数组api

1. reverse()翻转数组中的元素
2. sort()对数组元素进行排序,默认按照Unicode码从小到大排序
	arr.sort( funcion(a,b){
	 	return a-b;
	 })//a-b从小到大,b-a从大到小
3. join()将数组转字符串,可以指定分割符号,默认为,分割
var arr=['a','b','c','d'];
var str = arr.join('.');//必须是字符串
console.log(str);
4.concat()数组的拼接
var arr1=['a','b','c','d'];
var arr2=['aa','ba','sc','fdd'];
var arr3=['dfsa','fdb','fdsc','fsd'];
console.log(arr1.concat(arr2,arr3));//可以拼接多个数组,用,隔开
如何学习api

作用:
参数有哪些,哪些是必选的,哪些可选的
返回结果,调用手得到的结果是什么

5.slice()截取数组元素

slice(start,end) 截取数组中的元素,start表示开始的下标,end表示结束的下标,不包含end本身,end为空是截取到最后,如果下标是负数表示倒数,返回截取的元素,格式为数组

var arr=['张三','李四','王五','唐六','洪七','刘八','欧十']
console.log(arr.slice(1));//1到最后
console.log(arr.slice(1,3));//开始到结束,不包含后一个参数
练习

创建数组,包含a~g,每个字母代表一个元素,分别截取出cd,f;把截取> 的两部分拼接成一个新的数组

var arr=['a','b','c','d','e','f','g'];
var a=arr.slice(2,4);
console.log(a);
var b=arr.slice(5,6);
console.log(b);
console.log(a.concat(b));
6.splice()删除数组元素

splice(start,count,v1,v2…)删除数组元素,strat表示开始的下标,count表示删除的数量,start是负数表示倒数,count为空表示删除到最后,v1,v2表示删除后补充的元素,返回删除的元素,格式为数组。

练习

创建数组,包含a~h,删除d,替换f为m,在下标为2的位置添加z

var arr=['a','b','c','d','e','f','g','h'];
console.log(arr.splice(3,1));
console.log(arr);
console.log(arr.splice(-3,1,'m'));
console.log(arr);
arr.splice(2,0,'z');
console.log(arr);
7.indexOf()检测数组中是否含有某个元素

indexOf()查找数组中是否有某个元素,如果找到多个返回第一个

练习

创建数组包含友善神福,敬业福,和谐福,如果不含有爱国福,则把该福添加到数组。

var arr=['友善福','敬业福','和谐福'];
if( arr.indexOf('爱国福')===-1 ){
	arr[arr.length] ='爱国福';
}
console.log(arr);
8.push()数组末尾添加元素

push(v1,v2…) 在数组的末尾添加元素,返回数组的长度

var arr=['张一','李二','王三','唐四','洪五','刘六','欧七'];
console.log(arr.push('福星'));
console.log(arr);
9.pop()删除末尾元素

pop(v1,v2…)删除数组末尾的一个元素,返回删除的元素,只能一个个删除

var arr=['张一','李二','王三','唐四','洪五','刘六','欧七'];
console.log(arr.pop());
console.log(arr);
10.unshift(v1,v2…)数组的开头添加元素

在数组的开头添加元素,返回数组的长度,返回数组的长度

var arr=['张一','李二','王三','唐四','洪五','刘六','欧七'];
console.log(arr.unshift('福星'));
console.log(arr);
11.shift() 删除数组开头的一个元素

删除数组开头的一个元素,返回删除的元素

var arr=['张一','李二','王三','唐四','洪五','刘六','欧七'];
console.log(arr.shift());
console.log(arr);

三、二维数组

用于对一组数据进行二次分类

[ [], [], [] ]
访问 数组[下标][下标]

//省市
var arr1=['北京','江苏','广东','四川','重庆'];
//数组存放所有城市
var arr2=['东城区','西城区','海淀区','丰台区','南京','苏州','无锡','广州','深圳','珠海','成都','绵阳','简阳','崇州','渝北','渝中','九龙坡','南岸'];
var arr3=[
	['东城区','西城区','海淀区','丰台区'],
	['南京','苏州','无锡'],
	['广州','深圳','珠海'],
	['成都','绵阳','简阳','崇州'],
	['渝北','渝中','九龙坡','南岸']
]
console.log(arr3[0][2]);
遍历二维数组练习

四、字符串对象

1.字符串对象

包装对象:为了让原始类型的数据像引用类型数据一样,具有属性和方法,提供了三种包装对象,字符串对象、数值对象、布尔对象
new String() 将数据转为字符串,返回对象
String() 将数据转为字符串,返回字符串

var str1 = '1'; //字面量
var str2 =new String(1);
var str3 =String(1);
console.log(str1,typeof str1);
console.log(str2,typeof str2);
console.log(str3,typeof str3);
2.String()他toString()区别

toString 方法
只能特定的对象才能调用
String()函数
可以将任意的数据转为字符串

3.转义字符\
1. ’ 将特殊的单引号转为普通的单引号,不再具有包裹字符串功能
2.\n 换行符 将n转义为换行符
3.\t 制表符 将t转义为制表符,产生多个 连续空格
4.字符串API
1. chatAt()

获取下标对应的字符,也可以使用数组形式,字符串[下标]

练习

遍历javascript,得到a出现的次数

var str='javascript';
for (var i=0,cont=0;i<str.length;i++){
	if(str[i]==='a'){
		cont++;
	}
}
console.log(cont);
2. indexOf()

查找字符串出现的位置,返回满足条件第一个字符串出现的下标

2. lastIndexOF()

查找字符串出现的位置,返回满足条件最后一个字符串出现的下标,找不到返回-1

练习

声明变量保存用户输入的邮箱,查找邮箱中是否含有@,如果不含有则打印(’非法邮箱‘)

var email='122286911#qq.com';
if(email.indexOf('@')== '-1'){
	console.log('非法邮箱');
}
3.toUpperCase()

英文字母转为大写

var str='JavaScript';
console.log(str.toUpperCase(str));
4.toLowerCase()

英文字母转为小写

var str='JavaScript';
console.log(str.toLowerCase(str));
5.slice()

slice(start,end)截取字符串,start开始的下标,end结束的下标,如果end为空截取到最后,截取的范围不包括end本身,如果下标是负数表示倒数

var str='JavaScript';
console.log(str.toLowerCase(str));
console.log(str.slice(4));//4到最后一位
console.log(str.slice(4,7));//4到6不包含7
console.log(str.slice(-3,-1));//-3到-2,不包含-1

练习
通过邮箱地址获取用户名和邮箱后缀

var email='dong123456@tedu.cn';
console.log(email.slice(email.indexOf('@')+1))
console.log(email.slice(0,email.indexOf('@')))
6.substr()

substr(start,count) 截取字符串,start开始的下标,count截取的数量,count为空截取到最后,start为负数表示倒数

练习

截取出一个身份证号码上的出生的年月份,性别(倒数第2位),最后打印出以下形式:1975年05月29日 性别男

var id='110235197505292294';
var year=id.substr(6,4);
var month=id.substr(10,2);
var day=id.substr(12,2);
var sex =id.substr(-2,1);
//判断性别是男还是女,第一种方法
var sexs= sex%2 ===1 ? '男' : '女' ;
//判断性别是男还是女,第二种方法
/*if(sex%2===0){
	sex='女';
}else{
	sex='男';
}
*/
console.log('出生时间为:'+year+'年'+month+'月'+day+'日');
console.log('性别:'+sexs);
7.split()

split(str)按照指定的字符串切割为数组,和数组下的join对应
arr.join(’/’)和str.split(’,’)相反的操作
练习
wu.wukong.png截取出一个文件的后缀名

var arr='sun.wukong.png';
var houzui=arr.split('.')
console.log(houzui[houzui.length-1]);
08作业-字符串练习

’hOW arE yOU‘ -> ‘How Are You’

var str='hOW arE yOU';
//按照空格将字符串转为数组
var arr=str.split(' ');
//遍历数组,得到每一个单词
for(var i=0;i<arr.length;i++){
	//截取首个字母.转为大写
	//生成一个新的字符串
	var f = arr[i].substr(0,1).toUpperCase();
	//截取其余的字符串,转为小写
	var s = arr[i].substr(1).toLowerCase();
	//把转换后的两部分拼接起来,替换之前的单词
	arr[i]=f+s;
}
console.log(arr.join(' '));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在JavaScript中,可以使用JSON.parse()方法将字符串转换为对象。例如,如果有一个字符串str,可以使用JSON.parse(str)将其转换为对象。 另外,还可以使用eval()函数将字符串转换为对象。例如,通过eval('(' + labelExp + ')')可以将字符串labelExp转换为对象。 需要注意的是,使用eval()函数存在一些安全风险,尽量避免使用它来执行不受信任的代码。更推荐使用JSON.parse()方法进行字符串对象的转换。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [字符串数组以及对象之间的转换](https://blog.csdn.net/seimeii/article/details/120454136)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [javascript中json对象json数组json字符串互转及取值方法](https://download.csdn.net/download/weixin_38557727/12973638)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [js 字符串格式数组转为数组对象](https://blog.csdn.net/qq_34817440/article/details/102924505)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晚生隆海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值