JS编程题分享----持续更新

1.下面表达式包含字母,运算符和特殊符号 请计算下面的表达式 其他A的值设置为0  B1 依次类推Z25 特殊符号为0 例如: A+!=0+0  B+@=1+0

表达式: X-@+#-F+U-K+%+!+K-R 请写段代码计算表达式的值:

        var stra = "X-@+#-F+U-K+%+!+K-R"
			var flag=1
			sum=0
			for(var i=0;i<stra.length;i++){
				if(stra[i]=='+'){
					flag=1
				}else if(stra[i]=='-')
				{
					flag=-1
				}else if(stra.charCodeAt(i)>=65 && stra.charCodeAt(i)<=90){
					 sum += flag * (stra.charCodeAt(i)- 65);
				}
			}
			console.log(sum)//输出21

2.let p1=[{name:'苹果',price:1.2,count:5},{name:'香蕉',price:2.3,count:3},]
let p2=[{name:'苹果',price:1.2,count:5},{name:'葡萄',price:3.5,count:2},]
//将两个数组合并,如果商品有一样的则把数量相加,
//最后按price*count得到的总价格由高到低输出商品名字,
//例如 苹果1.2*10 > 葡萄3.5*2 > 香蕉2.3*2,所以输出[苹果,葡萄,香蕉]
function combine(p1,p2){}

function combine(p1,p2){
					//数组拼接
		 				var array=p1.concat(p2)
							//对象属性去重
							for(var i=0;i<array.length;i++){
								for(var j=i+1;j<array.length;j++){
									if(array[i].name==array[j].name){
										array[i].count+=array[j].count
										array.splice(j,1)
										j--}}}
							//排序
							var obj=[]
							array.sort(function(a,b){
							    return (a.price*a.count)>(b.price*b.count)? 1 : -1
							   });
							for(var i=0;i<array.length;i++){
								obj.push(array[i].name)
							}
							console.log(obj)}		
				combine(p1,p2)

3.要求返回参数数字的千分位分隔符字符串,输入:_comma(12300),输出:'12,300'

 function _comma(number) {
			                var str=Math.abs(number).toString().split('').reverse()
							//未考虑小数情况
			                let i=3
			                while(i<str.length){
			                    str.splice(i,0,',')
			                    i+=4
			                }
			                let arr=str.reverse().join('')
							console.log(arr)
			                return number>=0?arr:'-'+arr
			                
			            }
				_comma(123456)		

4.//给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
            //有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。
            //每个右括号都有一个对应的相同类型的左括号。

var isValid = function(s) {
				var len=(s.length)/2
			for(let i=0;i<len;i++){
				s = s.replace("()", "").replace("{}", "").replace("[]", "");
				console.log(s)
			return s.length== 0;
			}
			};
			console.log(isValid('()[]'))//true

5.请补全JavaScript代码,该函数接收两个参数分别为旧版本、新版本,当新版本高于旧版本时表明需要更新,返回true,否则返回false。
注意:
1. 版本号格式均为"X.X.X"
2. X∈[0,9]
3. 当两个版本号相同时,不需要更新

const _shouldUpdate = (oldVersion, newVersion) => {
	                // 补全代码				
	                oldVersion=oldVersion.split('.')
	                newVersion=newVersion.split('.')
	                return newVersion>oldVersion
	            }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值