1.任意范围的随机整数
function randomInt(min,max){
if(min > max){
var t = min;
min = max;
max = t;
}
return Math.floor(Math.random() * (max - min + 1) + min);
}
console.log(1,10);
2.排序
2.1 冒泡排序
function bubbleSortFromSmallToBig(arr){
for(var i = 1;i < arr.length;i ++){
for(var j = 0;j < arr.length - i;j ++){
if(arr[j] > arr[j + 1]){
var t = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = t;
}
}
}
return arr;
}
function bubbleSortFromBigToSmall(arr){
for(var i = 1;i < arr.length;i ++){
for(var j = 0;j < arr.length - i;j ++){
if(arr[j] < arr[j + 1]){
var t = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = t;
}
}
}
return arr;
}
2.2 选择排序
function selectionSortFromSmallToBig(arr){
for(var i = 0;i < arr.length - 1;i ++){
for(var j = i + 1;j < arr.length;j ++){
if(arr[i] > arr[j]){
var t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}
}
return arr;
}
function selectionSortFromBigToSmall(arr){
for(var i = 0;i < arr.length - 1;i ++){
for(var j = i + 1;j < arr.length;j ++){
if(arr[i] < arr[j]){
var t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}
}
return arr;
}
3.数组对象去重
function deteleObject(obj) {
var uniques = [];
var stringify = {};
for (var i = 0; i < obj.length; i++) {
var keys = Object.keys(obj[i]);
keys.sort(function (a, b) {
return Number(a) - Number(b);
});
var str = "";
for (var j = 0; j < keys.length; j++) {
str += JSON.stringify(keys[j]);
str += JSON.stringify(obj[i][keys[j]]);
}
if (!stringify.hasOwnProperty(str)) {
uniques.push(obj[i]);
stringify[str] = true;
}
}
uniques = uniques;
return uniques;
}
var arr = [{val: "0", key: " 徐州市"},{val: "556", key: " 徐州经济技术开发区"},{val: "557", key: " 云龙区"},{val: "0", key: " 徐州市"},
{val: "556", key: " 徐州经济技术开发区"},{val: "557", key: " 云龙区"}];
console.log(deteleObject(arr))
function some(arr) {
let some = [];
arr.forEach(el => {
if (!some.some(e => e.id== el.id)) {
some.push(el);
}
});
return some
}
4.向一个数组对象里添加新的属性
var arry= [{a:11,b:22,c:33,d:44},{a:11,b:0,c:0,d:44},{a:11,b:22,c:99,d:99}];
var arry2=[];
arry.map(( function(item,index) {
arry2.push(Object.assign({},item,{mess1:item.c,mess2:item.d}))
}))
console.log(arry2);
5.将一个数组里的对象拿出来变成另一个数组对象
var arry= [{a:11,b:22,c:33,d:44},{a:11,b:0,c:0,d:44},{a:11,b:22,c:99,d:99}];
var arry2=[];
arry.map(( function(item, index) {
arry2.push(Object.assign({},{mess1:item.c,mess2:item.d}))
}))
console.log(arry2);
6.获取数组对象中指定的对象
var arr = [
{name:"ming",age:16},
{name:"dan",age:18},
{name:"yue",age:22}
]
var filterArr = arr.filter(function(elem, index,arr){
console.log(11,elem,index,arr)
return elem.age>=18
})
console.log(filterArr);
7.获取数组对象中具体的键或值
var arr = [{val : 1,key1 : 2},{val : 3,key : 4},{val : 5,key : 6},{val : 7,key : 8}];
var arr2 = arr.map(function(v) {
return v.val;
});
console.log(arr2)
8.数组对象属性排序
let arr = [
{name:'zopp',age:0},
{name:'gpp',age:18},
{name:'yjj',age:8}
];
function compareSort(property){
return function(a,b){
let value1 = a[property];
let value2 = b[property];
return value1 - value2;
}
}
let resultSortArr = arr.sort(compareSort('age'));
console.log(resultSortArr)
9. js删除数组中指定的对象
let arr = [
{
id: 1,
name: "蔬菜类",
value: 172
},
{
id: 2,
name: "畜禽类",
value: 850
},
{
id: 3,
name: "水产类",
value: 633
},
{
id: 4,
name: "粮油类",
value: 833
},
{
id: 5,
name: "茶叶类",
value: 542
},
{
id: 6,
name: "果品类",
value: 318
},
{
id: 7,
name: "花卉类",
value: 625
},
{
id: 8,
name: "其他类",
value: 731
}
];
let newArr = arr.filter(item => item.id !== 1);
console.log("newArr", newArr);
let newArr2 = arr.reduce((total, current) => {
current.id !== 1 && total.push(current);
return total;
}, []);
console.log("newArr2", newArr2);