数组
T1.找出元素 item 在给定数组 arr 中的位置
function area(arr,num) {
return arr.indexOf(num);
}
console.log(area([1,2,3,4,5,6,7,8], 2));
T2.计算数组arr中所有元素的总和
function sum(arr) {
var a = 0;
for(var i=0; i<arr.length; i++) {
a += arr[i];
}
return a;
}
console.log(sum([1,2,3,4,5]));
T3.移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组
function apartItem(arr, item) {
var arrNew = [];
for(var i=0; i<arr.length; i++) {
if(arr[i] !== item) {
arrNew.push(arr[i]);
}
}
return arrNew;
}
console.log(apartItem([1,2,3,3,4,5], 3));
T4.移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回
function apartItem(arr, item) {
//var arrNew = [];
for(var i=0; i<arr.length; i++) {
if(arr[i] == item) {
arr.splice(i,1);
i--;
}
}
return arr;
}
console.log(apartItem([1,2,3,3,4,5], 3));
T5.在数组 arr 末尾添加元素 item。不要直接修改数组 arr,结果返回新的数组
function addItem(arr, item) {
var arrNew = [];
for(var i=0; i<arr.length; i++) {
arrNew.push(arr[i]);
}
arrNew.push(item);
return arrNew;
}
console.log(addItem([1,2,3,3,4,5], 3));
T6.删除数组 arr 最后一个元素。不要直接修改数组 arr,结果返回新的数组
push实现
function deleteItem(arr) {
var arrNew = [];
for(var i=0; i<arr.length-1; i++) {
arrNew.push(arr[i]);
}
return arrNew;
}
console.log(deleteItem([1,2,3,3,4,5]));
pop实现
function deleteItem(arr) {
var arrNew = [];
for(var i=0; i<arr.length; i++) {
arrNew.push(arr[i]);
}
arrNew.pop(arr[i]);
return arrNew;
}
console.log(deleteItem([1,2,3,3,4,5]));
T7.在数组 arr 开头添加元素 item。不要直接修改数组 arr,结果返回新的数组
function addItem(arr, item) {
var arrNew = [];
for(var i=0; i<arr.length; i++) {
arrNew.push(arr[i]);
}
arrNew.unshift(item);
return arrNew;
}
console.log(addItem([1,2,3,3,4,5], 0));
T8.删除数组 arr 第一个元素。不要直接修改数组 arr,结果返回新的数组
function deleteItem(arr) {
var arrNew = [];
for(var i=0; i<arr.length; i++) {
arrNew.push(arr[i]);
}
arrNew.shift(arr);
return arrNew;
}
console.log(deleteItem([1,2,3,3,4,5]));
T9.合并数组 arr1 和数组 arr2。不要直接修改数组 arr,结果返回新的数组
function link2(arr1,arr2) {
var arrNew = [];
var result = arrNew.concat(arr1,arr2)
return result;
}
console.log(link2([1,2,3],[4,5,6]));
T10.在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回新的数组
function addItem(arr, item, index) {
var arrNew = [];
for(var i=0; i<arr.length; i++) {
arrNew.push(arr[i]);
}
arrNew.splice(index, 0, item);
return arrNew;
}
console.log(addItem([1,2,4], 3, 2));
T11.统计数组 arr 中值等于 item 的元素出现的次数
function showTime(arr, item) {
var j = 0;
for(var i=0; i<arr.length; i++) {
if(arr[i] == item) {
j += 1;
}
}
return j;
}
console.log(showTime([1,2,3,3,4], 3));
T12.找出数组 arr 中重复出现过的元素
function showTime(arr) {
var showN = [];
arr.forEach(function(item) {
if(arr.indexOf(item) !== arr.lastIndexOf(item) && showN.indexOf(item)==-1)
showN.push(item);
})
return showN;
}
console.log(showTime([1,2,3,3,4]));
T13.求二次方(为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组 )
function square(arr) {
var arrNew = arr.map(function(item, index, array) {
return item * item;
});
return arrNew;
}
console.log(square([1,2,3,3,4]));
T14.创建长度为100的数组
for循环实现
function arr100() {
var arr = new Array(100);
for(var i=0; i<arr.length; i++) {
arr[i] = i;
}
return arr;
}
console.log(arr100());
//[0, 1, 2, , , 98, 99]
ES5实现
Object.keys(Array.from({ length: 100 }));
// ["0", "1", "2", ..., "98", "99"]
Object.keys(Array.apply(null,{ length: 100 }));
// ["0", "1", "2", ..., "98", "99"]
Object.keys(Array.from({ length: 100 })).map(function(item) {
return +item;
});
//[0, 1, 2, , , 98, 99]
Object.keys(Array.from({ length: 100 })).map(function(item) {
return parseInt(item);
});
//[0, 1, 2, , , 98, 99]
ES6实现(普通实现)
Array.from(new Array(100).keys());
//[0, 1, 2, , , 98, 99]
优雅进阶 - 扩展运算符
[...Array(100).keys()]
或者
[...Array.from({ length: 100 }).keys()]
T15.创建长度为100的随机数组
function arr100() {
var arr = new Array(100);
for(var i=0; i<arr.length; i++) {
arr[i] = Math.ceil(Math.random()*100);
}
return arr;
}
console.log(arr100());
T16.数组去重
function arr100() {
//定义一个含有100个元素的数组
var arr = new Array(100);
//定义一个空数组,用于去重后存放数据
var arrNew = [];
//随机生成100个数组元素
for(var i=0; i<arr.length; i++) {
arr[i] = Math.ceil(Math.random()*100);
}
//数组去重
for(var j=0; j<arr.length; j++) {
if(arrNew.indexOf(arr[j]) == -1)
arrNew.push(arr[j]);
}
return arrNew;
}
console.log(arr100());
正则
T1.判断字符串是否包含数字
test实现
function includeNum(str) {
var reg = /\d/;
return reg.test(str);
}
console.log(includeNum("235rey34"));
match实现
function includeNum(str) {
var reg = /[0-9]/;
return str.match(reg);
}
console.log(includeNum("235rey34"));
T2.判断连续重复字母
test实现
function repeatWord(str) {
var reg = /([a-zA-Z])\1/;
return reg.test(str);
}
console.log(repeatWord("235rrey34"));
match实现
function repeatWord(str) {
var reg = /([a-zA-Z])\1/;
return str.match(reg);
}
console.log(repeatWord("235rrey34"));
T3.判断是否以元音字母结尾
function endWith(str) {
var reg = /[aeiou]$/;
return str.match(reg);
}
console.log(endWith("235rrey34e"));
T4.获取指定字符串
**给定字符串 str,检查其是否包含 3 个连续的数字
1、如果包含,返回最新出现的 3 个数字的字符串
2、如果不包含,返回 false**
function include3(str) {
var result, reg = /[0-9]{3}/;
if(reg.test(str)) {
result = str.match(reg);
return result[0];
} else {
return false;
}
}
console.log(include3("235rrey34e"));
T5.判断是否符合指定格式
**给定字符串 str,检查其是否符合如下格式
1、XXX-XXXX-XXXX
2、其中 X 为 Number 类型**
function pattern(str) {
var reg = /^\d{3}-\d{4}-\d{4}$/;
return reg.test(str);
}
console.log(pattern("135-4873-8025"));
T6.判断是否符合 USD 格式
1、以 $ 开始
2、整数部分,从个位起,满 3 个数字用 , 分隔
3、如果为小数,则小数部分长度为 2
4、正确的格式如:$1,023,032.03 或者 $2.03,错误的格式如:$3,432,12.12 或者 $34,344.3**
function dollars(str) {
var reg = /^\$\d{1,3}(,\d{3})*(\.\d{2})?$/;
return reg.test(str);
}
console.log(dollars("$11,342.56"));
T7.获取 url 参数
**获取 url 中的参数
1. 指定参数名称,返回该参数的值 或者 空字符串
2. 不指定参数名称,返回全部的参数对象 或者 {}
3. 如果存在多个同名参数,则返回数组**
持续更新中。。。