1.Validate US Telephone Numbers
如果傳入字符串是一個有效的美國電話號碼,則返回 true.
function telephoneCheck(str) {
return /^1? ?(\d{3}|\(\d{3}\))[ -]?\d{3}[ -]?\d{4}$/.test(str);
}
telephoneCheck("555-555-5555");
2.Symmetric Difference
創(chuàng)建一個函數(shù)权她,接受兩個或多個數(shù)組炉抒,返回所給數(shù)組的 對等差分(symmetric difference) (△ or ⊕)數(shù)組.
function sym(args) {
let argsArr = Array.from(arguments);
let result = argsArr.reduce((arr1, arr2) => {
var arr1 = dis(arr1);
var arr2 = dis(arr2);
return symDif(arr1, arr2);
}, [])
return result.sort((a, b) => {
return a - b;
});
}
//去除每個數(shù)組中重復(fù)的數(shù)字
dis = (arr) => {
return arr.filter((item, index, array) => {
return array.indexOf(item) == index;
})
}
//兩個數(shù)組對等差分
symDif = (arr1, arr2) => {
var newArr = arr1.filter((item) => {
var index = arr2.indexOf(item);
if (index < 0) {
return true;
} else {
arr2.splice(index, 1);
return false;
}
});
return newArr.concat(arr2);
}
sym([1, 2, 3], [5, 2, 1, 4]);
3.Exact Change
設(shè)計一個收銀程序 checkCashRegister() 奖唯,其把購買價格(price)作為第一個參數(shù) , 付款金額 (cash)作為第二個參數(shù), 和收銀機(jī)中零錢 (cid) 作為第三個參數(shù).
cid 是一個二維數(shù)組署穗,存著當(dāng)前可用的找零.
當(dāng)收銀機(jī)中的錢不夠找零時返回字符串 "Insufficient Funds". 如果正好則返回字符串 "Closed".
否則, 返回應(yīng)找回的零錢列表,且由大到小存在二維數(shù)組中.
4.Inventory Update
依照一個存著新進(jìn)貨物的二維數(shù)組芯义,更新存著現(xiàn)有庫存(在 arr1 中)的二維數(shù)組. 如果貨物已存在則更新數(shù)量 . 如果沒有對應(yīng)貨物則把其加入到數(shù)組中愕难,更新最新的數(shù)量. 返回當(dāng)前的庫存數(shù)組早龟,且按貨物名稱的字母順序排列.
自己驗(yàn)證的時候沒問題
function updateInventory(arr1, arr2) {
// 請保證你的代碼考慮到所有情況
const newArr = curInv.map((item) => item[1]);
newInv.forEach((item, index, arr) => {
var i = newArr.indexOf(item[1]);
if (i >= 0) {
curInv[i][0] += newInv[index][0];
} else {
curInv.push(newInv[index]);
}
})
return curInv.sort((a, b) => {
return a[1].charCodeAt(0) - b[1].charCodeAt(0);
});
}
// 倉庫庫存示例
var curInv = [
[21, "Bowling Ball"],
[2, "Dirty Sock"],
[1, "Hair Pin"],
[5, "Microphone"]
];
var newInv = [
[2, "Hair Pin"],
[3, "Half-Eaten Apple"],
[67, "Bowling Ball"],
[7, "Toothpaste"]
];
updateInventory(curInv, newInv);
5.No repeats please
把一個字符串中的字符重新排列生成新的字符串,返回新生成的字符串里沒有連續(xù)重復(fù)字符的字符串個數(shù).連續(xù)重復(fù)只以單個字符為準(zhǔn)
例如, aab 應(yīng)該返回 2 因?yàn)樗偣灿?中排列 (aab, aab, aba, aba, baa, baa), 但是只有兩個 (aba and aba)沒有連續(xù)重復(fù)的字符 (在本例中是 a).