js数组操作
js查找数组中与目标值最相近的数值
绝对值
例子: arr=[25,28,32,35]
num=30;
那么返回的离得最大值32;
function findCloseNum(arr, num) {
var index = 0; // 保存最接近数值在数组中的索引
var d_value = Number.MAX_VALUE; // 保存差值绝对值,默认为最大数值
for (var i = 0; i < arr.length; i++) {
var new_d_value = Math.abs(arr[i] - num); // 新差值
if (new_d_value <= d_value) { // 如果新差值绝对值小于等于旧差值绝对值,保存新差值绝对值和索引
if (new_d_value === d_value && arr[i] < arr[index]) { // 如果数组中两个数值跟目标数值差值一样,取大
continue;
}
index = i;
d_value = new_d_value;
}
}
return arr[index]; // 返回最接近的数值
}
js查找数组中获取最大值数
function getMax(arr) {
//假设最大值max 为arr[0]
var max = arr[0];
//遍历对比
for (var i = 0; i < arr.length; i++) {
//若max小于当前项 说明不是最大值 将当前项的值赋予max
// 继续遍历对比找到最大的值
if (max < arr[i]) {
max = arr[i];
}
}
return max;
}
js查找数组中获取最小值
function getMin(arr) {
var min = arr[0];
for (var i = 0; i < arr.length; i++) {
if (min > arr[i]) {
min = arr[i];
}
}
return min;
}
js查找数组中获取最大值的数值的下标
function getMaxIndex(arr) {
var max = arr[0];
//声明了个变量 保存下标值
var index = 0;
for (var i = 0; i < arr.length; i++) {
if (max < arr[i]) {
max = arr[i];
index = i;
}
}
return index;
}
js查找数组中获取最小值的数值的下标
function getMinIndex(arr) {
var min = arr[0];
//声明了个变量 保存下标值
var index = 0;
for (var i = 0; i < arr.length; i++) {
if (min > arr[i]) {
min = arr[i];
index = i;
}
}
return index;
}
$.inArray(5,[1,2,3,4,5,6,7]) //返回对应的索引
Array.indexOf(4)//判断是否包含某个元素,没有则返回-1
JS 查找数组相同元素索引的集合
function searchKeys(needle, haystack) {
var result = [];
for (i in haystack) {
if (haystack[i] == needle) {
result.push(i);
}
}
return result;
}
JS 查找数组去重
Array.prototype.unique3 = function () {
var new_arr = []; // 创建一个新的数组存放结果
var json = {}; // 创建一个空对象
for (var i = 0; i < this.length; i++) { // for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到结果数组中,同时把这个元素的内容作为对象的一个属性,并赋值为1,存入到第2步建立的对象中。
if (!json[this[i]]) {
new_arr.push(this[i]);
json[this[i]] = true;
}
}
return new_arr;
}