您的位置 首页 > 数码极客

js如何取出数组值、如何将数组中的值取出!

原生Ma方法

Ma 方法不能接收数组,可以使用ES6的...将数组打散

const arr = [111, 12, 111, 34, 2, 5, 76]; con(Ma(...arr));

当然也可以用apply方法调用

con(Ma.apply(null, arr));

遍历获取最大值

遍历数组,依次比较,保存较大的数,最终得到的就是最大值,这里使用forEach遍历

function max2(arr) { let result = -Infinity; arr.forEach((item) => { if (item > result) { result = item; } }); return result; } con(max2(arr));

利用排序获取最大值

将数组使用sort方法排序后,第一个元素或最后一个元素就是最大值,再用shift或者pop方法取出(由升序还是降序决定),值得注意的是这两个方法会修改原数组,可以使用slice方法复制一份数组再执行弹出元素操作

function max3(arr) { return arr.sort((a, b) => a - b).slice().pop(); } con(max3(arr));

使用filter排除小的值

使用filter函数依次取出<自身的元素,当取不出元素即返回的函数长度===零时,就取得了最大值,至于为什么用递归不用循环,用IIFE不用先声明后使用,嗯,就是单纯的不想

(function greater(arr, idx) { const res = arr.filter(item => item > arr[idx]); if === 1) { con(res[0]); return res[0]; } greater(arr, idx + 1); })(arr, 0);

使用every判断自己是否是最大值

使用every的原理和使用filter的原理类似,即当所有元素都<=本身的时候,本身就是最大值

(function greater(arr, idx) { if (item => item <= arr[idx])) { con(arr[idx]); return arr[idx]; } greater(arr, idx + 1); })(arr, 0);

使用递归模拟数组方法

和上面两个方法类似,只是内层用了递归和IIFE模拟every

(function outer(arr, i) { let flag = function inner(arr, j) { if (arr[j] <= arr[i]) { return false; } return arr.length < j + 1 ? inner(arr, j + 1) : true; }(arr, 0); if (flag) { con(arr[i - 1]); return arr[i - 1]; } outer(arr, i + 1); })(arr, 0);

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“js如何取出数组值,如何将数组中的值取出,js如何取出数组中的一个值,js取出数组的每个值,js怎么取出数组中对象的值”边界阅读