/**
* 模拟indexOf()
* @param string
* @param key
* @returns {number}
*/
function str_indexOf(string, key) {
var result = -1;
for (var i = 0; i < string.length; i++) {
if (i <= string.length - key.length) {
var sub_key = '';
for (var j = 0; j < key.length; j++) {
sub_key += String(string[i+j]);
}
if (sub_key === key) {
return i;
}
}
}
return result;
}
/**
* 字符串的替换删除新增
* @param string
* @param start
* @param deleteCount
* @returns {string}
*/
function str_splice(string, start, deleteCount) {
var result = '';
for (let i = 0; i < string.length; i++) {
if ((i < start || i >= start + deleteCount) && start < string.length) {
if (i === start + deleteCount) {
for (let j = 3; j < arguments.length; j++) {
result += arguments[j];
}
}
result += string[i];
}
}
if (start >= string.length) {
for (let k = 3; k < arguments.length; k++) {
string += arguments[k];
}
return string;
}
return result;
}
var arr = [{
data: 1,
age: 2
},
{
data: 3,
age: 3
},
{
data: 2,
age: 1
},
]
var arr=[2,3,1];
function sort(array, key, shunxu) {
shuxing = String(key);
for (var i = 0; i < array.length; i++) {
for (var j = i + 1; j < array.length; j++) {
if (shunxu === true) {
if (array[i][key] > array[j][key]) {
var temp = array[i];
array[i] = array[j];
array[j] = temp;
}
} else if (shunxu === false) {
if (array[i][key] < array[j][key]) {
var temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
}
return array
}
var res = sort(arr, 'age', true);
console.log(res);
console.log(arr);
/**
* 颠倒数组
* @param array
* @returns {[]}
*/
function arr_reverse(array) {
var result = [];
for (var i = array.length - 1; i >= 0; i--) {
result[result.length] = array[i];
}
return result;
}
/**
* 从数组尾部删除元素
* @param array
* @returns {[]}
*/
function arr_pop(array) {
var result = [];
for (var i = 0; i < array.length - 1; i++) {
result[result.length] = array[i];
}
array = result
return result;
}
/**
* 数组转化为字符串
* @param array
* @returns {string}
*/
function arr_toString(array) {
var string = '';
for (var i = 0; i < array.length; i++) {
if (i < array.length - 1) {
string += array[i] + ',';
} else {
string += array[i];
}
}
return string
}
/**
* 数组转化为字符串join()
* @param array
* @param key
* @returns {string}
*/
function arr_join(array, key) {
var string = '';
for (var i = 0; i < array.length; i++) {
if (i < array.length - 1) {
string += array[i] + key;
} else {
string += array[i];
}
}
return string
}
/**
* 截取片段
* @param array
* @param start
* @param end
* @returns {[]}
*/
function arr_slice(array, start, end) {
if (!Array.isArray(array)) {
throw new Error('parms1 must be array');
}
if (typeof start !== 'number') {
throw new Error('parms2 must be number');
}
if (typeof end !== "undefined") {
if(typeof end !="number")
throw new Error('parms3 must be number or undefined ');
}
// if (typeof end !=='undefined') {
// throw new Error('parms3 must be number or undefined ');
// }
var result = [];
for (var i = start; i < array.length; i++) {
if (end > i || end === undefined) {
result[result.length] = array[i];
}
}
return result;
}
/**
* 遍历数组
* @param arr
* @param callback
*/
function arr_forEach(arr,callback) {
if(!Array.isArray(arr)){throw new Error('param1 must be an array')}
if(typeof callback !=='function'){throw new Error('param2 must be an array')}
for(let i=0;i<arr.length;i++){
callback(arr[i],i,arr);
}
}
/**
* 筛选数组
* @param arr
* @param callback
* @returns {[]}
*/
function arr_filter(arr,callback) {
if(!Array.isArray(arr)){throw new Error('param1 must be an array')};
if(typeof callback !=='function'){throw new Error('param2 must be an array')};
var res =[];
for(let i=0;i<arr.length;i++){
var result = callback(arr[i],i,arr);
if(result){
res[res.length]=arr[i];
}
}
return res;
}
/**
* //模拟str.substr()
* @param string
* @param startIndex
* @param length
* @returns {string}
*/
// function str_substr(string,startIndex,length) {
// var result = '';
// for (let i = 0; i < length; i++) {
// result+=string[startIndex+i];
// }
// return result
// }
function str_substr(string,startIndex,length) {
var result = '';
for (let i = 0; i < string.length; i++) {
if(i>=startIndex&&i<startIndex+length){
result+=string[i];
}
}
return result
}
/**
* 颠倒字符串
* @param str
* @returns {string}
*/
function rev(str) {
var res = ''
for (var i = str.length-1; i >=0; i--) {
res+=(str[i]);
}
return res;
}
模拟js中常用的的API
最新推荐文章于 2020-12-15 19:47:28 发布