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

如何在JavaScript(React)中根据索引筛选工作日字符串数组?

最优ES6实现方式

直接使用Array.prototype.map()遍历选中的索引数组,取出工作日数组中对应索引的元素即可,这是语义最清晰、效率最高的实现方式:

const weekdays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
const selectedIndices = [0, 2, 4];

// 核心逻辑
const selectedWeekdays = selectedIndices.map(index => weekdays[index]);
// 结果:['Mon', 'Wed', 'Fri']

为什么这是最优解?

  • 语义明确:map方法的作用就是将原数组的每个元素转换为新元素,完全契合“用索引取对应工作日”的需求,代码可读性极强。
  • 效率最高:时间复杂度为O(k),k是选中索引数组的长度,属于线性遍历,没有额外的性能开销。
  • 简洁性:ES6箭头函数进一步压缩了代码量,逻辑一目了然。

可选:处理非法索引

如果无法保证选中的索引一定在工作日数组的有效范围内(比如索引为负数或超出数组长度),可以先过滤掉无效索引再映射:

const selectedWeekdays = selectedIndices
  .filter(index => index >= 0 && index < weekdays.length)
  .map(index => weekdays[index]);

在React中传递给子组件的示例

function Parent() {
  const weekdays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
  const selectedIndices = [0, 2, 4];
  const selectedDays = selectedIndices.map(i => weekdays[i]);

  return <ChildComponent selectedDays={selectedDays} />;
}

// 子组件接收并使用
function ChildComponent({ selectedDays }) {
  return (
    <ul>
      {selectedDays.map(day => (
        <li key={day}>{day}</li>
      ))}
    </ul>
  );
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 15:52:06