1、【去除一个数组中的重复的,且按升序排序】
function pai(arr) {
var result = [];
var i;
for (i=0;i<arr.length; i++) {
if ( result.indexOf(arr[i]) == -1 ){
result.push(arr[i]);
}
}
return result.sort(function (a,b) {
return a-b;
});
}
console.log(pai([11,23,18,14,7,6,3]));
注意:
sort() 方法用于对数组的元素进行排序。
排序顺序可以是字母或数字,并按升序或降序。默认排序顺序为按字母升序。
当为数字时按字母顺序排列时较大数将排在较小数前面。即9可以排在2前;
用sort(function(a,b){return a-b})即可改为升序;
用sort(function(a,b){return b-a})即为降序
例
var points = [40,100,1,5,25,10];
points.sort(function(a,b){return a-b});
输出结果:1,5,10,25,40,100
var points = [40,100,1,5,25,10];
points.sort(function(a,b){return b-a});
输出结果:100,40,25,10,5,1
2、【计算出一组数中最大的差值】
function getMaxProfit(arr){
var min = arr[0];
var max = arr[0];
for(var i=0;i<arr.length;i++){
if(arr[i]<min)
min = arr[i];
if(arr[i]>max)
max = arr[i];
}
return max - min;
}
console.log(getMaxProfit([1,2,5,7,18]));
其中:该题使用迭代不断地进行比较,将最小值赋给min,最大值赋给max,从而找出该数组中的最大最小值,而一个数组中,最大值和最小值的差值即为该数组中的最大差值。
3、【排序两个已经排好序的数组】
function paixu(a,b){
if (!a || !b) {
return;
}
var one = a[0];
var two= b[0];
var i=1;
var j=1;
var res = [];
while(one || two){
if ((one && !two) || one <= two) {
res.push(one);
one = a[i++];
}
else{
res.push(two);
two = b[j++];
}
}
return res;
}
console.log(paixu([2,5,7,9], [1,3,6,11]));
4、【把多为数组拆为一维数组】
var arr=[1,[2,3],[[4,5,6],[7,8,9]]];
var list=[];
function NewArray(array){
for(var i=0;i<array.length;i++)
{
//检测是否为数组
if(Array.isArray(array[i]))
{
NewArray(array[i]);
}
else{
//添加当前不是数组的值;
list.push(array[i]);
}
}
}
NewArray(arr);
console.log(list);
注:
isArray() 方法
用于判断一个对象是否为数组。
如果对象是数组返回 true,否则返回 false。
格式
Array.isArray(obj)
其中参数obj是必需要有的指的是判断的对象。