最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

【JavaScript——函数编写】谁最长(蓝桥杯真题

网站源码admin0浏览0评论

【JavaScript——函数编写】谁最长(蓝桥杯真题

背景介绍

如果给你若干个数组,你能很快判断出最长的都有哪些吗? 本题需要在已提供的基础项目中,使用 JS 知识封装一个函数,该函数可以接收若干个一维数组作为参数,并最终返回长度最大的数组集合


准备步骤

开始答题前,需要先打开本题的项目代码文件夹,目录结构如下:

代码语言:javascript代码运行次数:0运行复制
├── index.html
└── js
    └── index.js

其中:

  • js/index.js 是页面功能实现的逻辑代码。
  • index.html 包含用于检测函数的代码。

注意:打开环境后发现缺少项目代码,请手动键入下述命令进行下载:

代码语言:javascript代码运行次数:0运行复制
cd /home/project
wget .zip && unzip 08.zip && rm 08.zip

在浏览器中预览 index.html 页面,显示如下:

当前的几种传参情况,并未返回正确结果。


目标效果

请在 js/index.js 文件中,补全函数 getMaxArrays 中的代码,最终实现根据不同的传参情况,返回预期数组的需求。具体需求如下:

(1)传入的参数列表中,所有参数皆为数组的情况下:

1. 若长度最大的数组有一到多个,则最终返回这些数组的集合(即二维数组)。

例如:

代码语言:javascript代码运行次数:0运行复制
var a1 = [12, 2];
var a2 = [34, 2, 3];
var a3 = [23, 12, 3];
var newA = getMaxArrays(a1, a2, a3);
console.log(newA); // => [[34, 2, 3],[23, 12, 3]];
var newA = getMaxArrays(a3);
console.log(newA); // => [[23, 12, 3]];

2. 若所有数组长度相同,则返回空数组(即:[])。

例如:

代码语言:javascript代码运行次数:0运行复制
var a2 = [34, 2, 3];
var a3 = [23, 12, 3];
var newA = getMaxArrays(a2, a3);
console.log(newA); // => [];

3. 其他情况则返回空数组(即:[])。


要求规定

  • 请勿修改 js/index.js 文件外的任何内容。
  • 请严格按照考试步骤操作,切勿修改考试默认提供项目中的文件名称、文件夹路径、class 名、id 名、图片名等,以免造成无法判题通过。

判分标准

  • 本题完全实现题目目标得满分,否则得 0 分。

通关代码✔️

代码语言:javascript代码运行次数:0运行复制
/**
 * 封装函数,传入任意数量的数组,返回长度最大的数组集合
 */
const getMaxArrays = (...arrays) => {
  // TODO:待补充代码
  if(arrays.some(items=>!Array.isArray(items))){
    return [] 
  }
  if(arrays.length == 0){
    return []
  }
  if(arrays.every(arr=>arr.length==arrays[0].length)){
    return []
  }
  const max = Math.max(...arrays.map(item=>item.length))
  return arrays.filter(items=>items.length == max)
};
module.exports = getMaxArrays; //请勿删除

代码解析

发布评论

评论列表(0)

  1. 暂无评论