排队
function nextInLine(arr, item) {
arr.push(item);
var item=arr.shift();
return item;
}
在 Switch 语句添加多个相同选项
如果你想为 switch
中的多个不同的输入设置相同的结果,可以这样写:
switch(val) {
case 1:
case 2:
case 3:
result = "1, 2, or 3";
break;
case 4:
result = "4 alone";
}
从函数返回布尔值
function isEqual(a,b) {
return a === b;
}
21点
var count = 0;
var answer='';
function cc(card) {
switch(card) {
case 2:
case 3:
case 4:
case 5:
case 6:
count++;
break;
case 7:
case 8:
case 9:
count;
break;
case 10:
case 'J':
case 'Q':
case 'K':
case 'A':
count--;
break;
default:
answer = '...';
break;
}
if(count>0){
answer = count+" Bet";
}else{
answer = count+" Hold";
}
return answer;
}
cc(2); cc(3); cc(7); cc('K'); cc('A');
通过变量访问对象属性
使用这一概念的另一种情况是:属性的名字是在程序运行期间动态收集得到的。如下所示:
var testObj = {
12: "Namath",
16: "Montana",
19: "Unitas"
};
var playerNumber=16; // 修改这一行
var player = testObj[playerNumber]; // 修改这一行
分辨indexOf() 与hasOwnProperty()
性能对比:
作用对比:
'' == false
js中空字符串与0相等,也就意味着空字符串等等于false。
递归代替循环
function sum(arr, n) {
if (n <= 0) {
return 0;
} else {
return sum(arr, n - 1) + arr[n - 1];
}
}
console.log(sum([1,2,2,3,4,4],6));
sum(arr, n)==sum(arr, n - 1) + arr[n - 1];
通讯录
function lookUpProfile(name, prop){
for(var i=0;i<contacts.length;i++){
if(contacts[i].firstName===name){
if(contacts[i].hasOwnProperty(prop)){
return contacts[i][prop];
}else{
return 'No such property';
}
}
}
return 'No such contact';
}
使用递归创建一个倒计时
这里要注意sort函数的写法,和了解sort的排序原理是按什么来。
function countdown(n){
if (n < 1) {
return [];
} else {
const countArray = countdown(n-1);
countArray.push(n);
const arr=countArray.sort((a,b)=>{return b - a});
return arr;
}
}
使用递归来创建一个连续数字数组
Array.from()
方法从一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例。console.log(Array.from([1,2,3,4,5,6],x=>x));
function rangeOfNumbers(startNum, endNum) {
return Array.from(new Array(endNum+1).keys()).slice(startNum);
};