You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在字符串数组中提取中间值?无需使用if else语句

提取数组中间值的解决方案

嘿,这问题挺有意思的!不用Math.floor或者if else也能轻松搞定,而且方法还不止一种,甚至能适配任意奇数长度的数组哦~

方法一:用双波浪号~~取整

双波浪号在JavaScript里是一种快速取整的技巧,它会直接去掉数字的小数部分,对正数来说效果和Math.floor一致,但写法更简洁:

var someValues = ["abc", "def", "ghi" , "jkl", "mno"];
var middleValue = someValues[~~(someValues.length / 2)];
console.log(middleValue); // 输出 "ghi"

方法二:用Math.trunc()取整

如果觉得双波浪号不够直观,Math.trunc()是ES6新增的方法,专门用来去除小数部分保留整数,可读性更强:

var someValues = ["abc", "def", "ghi" , "jkl", "mno"];
var middleValue = someValues[Math.trunc(someValues.length / 2)];
console.log(middleValue); // 输出 "ghi"

方法三:用位运算>> 0取整

位运算也能实现取整效果,>> 0会把数值转换成32位整数,同样能去掉小数部分:

var someValues = ["abc", "def", "ghi" , "jkl", "mno"];
var middleValue = someValues[(someValues.length / 2) >> 0];
console.log(middleValue); // 输出 "ghi"

原理说明

你的数组长度是5,5 / 2得到2.5,上面的几种方法都会把这个小数转换成整数2,而数组索引从0开始,索引2对应的正好是中间元素"ghi"。如果是其他奇数长度的数组(比如长度7),用同样的方法也能精准定位到中间元素,完全不需要判断语句。

内容的提问来源于stack exchange,提问作者Deke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:25:03