标签:each 返回值 ide 构造函数 相同 对象属性 sar using 自身
function indexOf(arr, item) {
if(Array.prototype.indexOf)
return arr.indexOf(item);
for(let i = 0; i < arr.length; i++){
if(item === arr[i])
return i;
}
return -1;
}
function sum(arr) {
return arr.reduce(function(pre,next){
return pre+next;
},0)
}
不要直接修改数组 arr
,结果返回新的数组 function remove(arr, item) {
return arr.filter(function(item1){
return item1 !== item;
})
}
直接在给定的 arr 数组上进行操作
,并将结果返回 function removeWithoutCopy(arr, item) {
for(var i=0;i<arr.length;i++){
var a=arr.indexOf(item);
arr.splice(a,1);
}
return arr;
}
末尾
添加元素 item。不要直接修改数组 arr,结果返回新的数组 function append(arr, item) {
let newarr = arr.slice(0);
newarr.push(item);
return newarr;
}
不要直接修改数组 arr
,结果返回新的数组 function truncate(arr) {
return arr.slice(0,-1);
}
开头
添加元素 item。不要直接修改数组 arr
,结果返回新的数组 function prepend(arr, item) {
let newarr = [];
newarr[0] = item;
arr.forEach(function(item1,index){
newarr[index+1] = item1;
})
return newarr;
}
不要直接修改数组 arr
,结果返回新的数组 function curtail(arr) {
let newarr = arr.slice(0);
newarr.shift();
return newarr;
}
不要直接修改数组 arr
,结果返回新的数组 function concat(arr1, arr2) {
let a = [];
return a.concat(arr1,arr2);
}
function insert(arr, item, index) {
let newarr = [];
let newarr1 = arr.slice(0,index);//获取数组前半段
newarr1.push(item);//添加至数组前段
let newarr2 = arr.slice(index);//获取数组后半段
return newarr.concat(newarr1,newarr2);//进行数组拼接
}
function count(arr, item) {
let count = 0;
arr.forEach(function(item1){
if(item1==item)
count++;
})
return count;
}
function duplicates(arr) {
let obj = {};
let newarr = [];
arr.forEach(function(item){
if(!obj[item])
obj[item] = item;
else if(!newarr.includes(item))
newarr.push(item);
})
return newarr.sort();
}
function square(arr) {
return arr.map(function(item){
return item*item;
})
}
function findAllOccurrences(arr, target) {
let newarr = [];
arr.forEach(function(item,index){
if(item === target)
newarr.push(index);
})
return newarr;
}
function globals() {
myObject = {//未声明,默认为全局变量
name : ‘Jory‘
};
return myObject;
}
function globals() {
let myObject = {
name : ‘Jory‘
};
return myObject;
}
function functions(flag) {
if (flag) {
function getValue() { return ‘a‘; }//在判断语句块中应使用函数表达式定义函数,而不用函数声明的方式
} else {
function getValue() { return ‘b‘; }
}
return getValue();
}
function functions(flag) {
let getValue = null;
if (flag) {
getValue = function(){return ‘a‘;}
} else {
getValue = function(){return ‘b‘;}
}
return getValue();
}
function parse2Int(num) {
return parseInt(num);//根据测试用例,发现是以10为基数进行解析,默认按字符串来确定基数
}
function parse2Int(num) {
return parseInt(num,10);
}
function identity(val1, val2) {
return val1 === val2;
}
function count(start, end) {
//立即输出第一个值
console.log(start++);
var timer = setInterval(function(){
if(start <= end){
console.log(start++);
}else{
clearInterval(timer);
}
},100);
//返回一个对象
return {
cancel : function(){
clearInterval(timer);
}
};
}
function fizzBuzz(num) {
if(!num|typeof(num)!==‘number‘)
return false;
else if(num%3==0&&num%5==0)
return ‘fizzbuzz‘;
else if(num%3==0)
return ‘fizz‘;
else if(num%5==0)
return ‘buzz‘;
else
return num;
}
function argsAsArray(fn, arr) {
return fn(...arr);//es6语法
}
function speak(fn, obj) {
return fn.bind(obj)();//也可使用call或者apply
}
function functionFunction(str) {
return function(str2){
return str+‘, ‘+str2;
}
}
function makeClosures(arr, fn) {
let result = [];
for(let i=0; i<arr.length; i++)
{
result.push(function(e){
return function(){
return fn(e);
}
}(arr[i]));
}
return result;
}
function partial(fn, str1, str2) {
return function(str3){
return fn(str1,str2,str3);
}
}
function useArguments() {
let arr = [...new Set(arguments)];
return arr.reduce(function(pre,next){
return pre+next;
})
}
function callIt(fn) {
return fn.call(this,...[].slice.call(arguments,1));//转化成数组并使用...将数组转成单个的参数
}
function partialUsingArguments(fn) {
let arg1 = [].slice.call(arguments,1);
let result = function(){
return fn.apply(null,arg1.concat([].slice.call(arguments)))
};
return result;
}
function curryIt(fn) {
let n = fn.length;
let arr = [];
return function(arg){
arr.push(arg);
if(arr.length<n)
return arguments.callee;
else
return fn.apply(null,arr);
}
}
function or(a, b) {
return a||b;
}
function and(a, b) {
return a&&b;
}
function createModule(str1, str2) {
return {
greeting:str1,
name:str2,
sayIt(){
return this.greeting+", "+this.name;
}
}
}
function valueAtBit(num, bit) {
return (num>>(bit-1))&1
}
function base10(str) {
return parseInt(str,2);
}
function convertToBinary(num) {
let newnum = num.toString(2);
if(newnum.length<8){
for(let i = 0; i < 8-newnum.length; i++){
newnum = ‘0‘+newnum;
}
return newnum;
}else
return newnum;
}
精度问题
function multiply(a, b) {
var aDec = a.toString().split(‘.‘)[1] || ‘‘;
var bDec = b.toString().split(‘.‘)[1] || ‘‘;
var fix = aDec.length + bDec.length;
return (a * b).toFixed(fix);
}
function alterContext(fn, obj) {
return fn.call(obj);
}
function alterObjects(constructor, greeting) {
constructor.prototype.greeting = greeting;
}
不在原型链上的属性
(注意这题测试例子的冒号后面也有一个空格~) function iterate(obj) {
let arr1 = Object.keys(obj);
let arr2 = [];
arr1.forEach(function(item){
arr2.push(item+‘: ‘+obj[item]);
});
return arr2;
}
function containsNumber(str) {
let reg = /\d/;
return reg.test(str);
}
是否包含连续重复
的字母(a-zA-Z),包含返回 true,否则返回 false function containsRepeatingLetter(str) {
return /([a-zA-Z])\1/.test(str);
}
function endsWithVowel(str) {
return /[a,e,i,o,u]/i.test(str[str.length-1]);
}
function matchesPattern(str) {
let reg = /^(\d{3})-(\d{3})-(\d{4})$/g;
return reg.test(str);
}
function isUSD(str) {
let reg = /^\$([1-9]\d{0,2}(,\d{3})*|0)(\.\d{2})?$/;
return reg.test(str);
}
标签:each 返回值 ide 构造函数 相同 对象属性 sar using 自身
原文地址:https://www.cnblogs.com/angle-xiu/p/13204682.html