JavaScript测试与排序技巧解析

25、如果我们在测试中忘记调用 done() 会发生什么?

由于回调函数是无序运行的,Mocha 需要知道每个测试何时完成。若忘记调用 done() ,Mocha 无法知晓测试何时结束,可能导致测试无法正常结束或后续测试无法正常执行。

26、Implement it.(执行它。)

执行它。

27、给定一个包含颜色信息的数组,每个颜色对象包含 red green 属性,分别表示红色值和绿色值,编写代码按红色值递增和绿色值递减对颜色值进行排序。

可使用以下代码实现:

const sortedColors = colors.orderBy(row => parseInt(row.red)).thenByDescending(row => parseInt(row.green));
console.log(sortedColors.toArray());

28、使用 data - forge 对 surveys.csv 文件进行聚合操作,找到年份、后足长度和体重的最小值、最大值和平均值。

可以使用 data-forge 的相关方法编写函数来实现:

如编写 getSurveyStats 方法获取年份的最小值、最大值和记录数量:

getSurveyStats() {
    return {
        year_low: this.data.deflate(row => row.year).min(),
        year_high: this.data.deflate(row => row.year).max(),
        record_count: this.data.count()
    };
}

编写 getSurveyRange 方法获取指定年份范围内后足长度和体重的最小值、最大值和平均值,同时要注意处理缺失数据和空系列的情况:

getSurveyRange(minYear, maxYear) {
    return Array(1 + maxYear - minYear)
        .fill(0)
        .map((v, i) => minYear + i)
        .map(year => {
            const subset = this.data.where(row => row.year === year);
            if (subset.count()) {
                return {
                    key: toString(year),
                    year: year,
                    min_hindfoot_length: this._getMin(subset, 'hindfoot_length'),
                    ave_hindfoot_length: this._getAve(subset, 'hindfoot_length'),
                    max_hindfoot_length: this._getMax(subset, 'hindfoot_length'),
                    min_weight: this._getMin(subset, 'weight'),
                    ave_weight: this._getAve(subset, 'weight'),
                    max_weight: this._getMax(subset, 'weight')
                };
            }
        });
}

其中 _getMin _getAve _getMax 等内部方法可确保数据存在时才进行汇总。

29、回顾计算不同震级地震平均深度的示例步骤,并展示每次方法调用后的数据结构。它们都是数据框吗,还是也创建或操作了其他数据结构?

  1. groupBy 调用:产生一个包含 28 个数据框的列表,每个数据框对应震级的一个不同值。数据结构为数据框列表。

  2. select 调用:将每个数据框转换为一个对象,对象包含震级和平均深度。数据结构为包含对象的系列(Series)。

  3. inflate 调用:将系列转换回数据框。数据结构为数据框。

  4. orderBy 调用:按震级对数据框进行排序。数据结构为数据框。

所以,除了数据框,还创建和操作了系列(Series)和对象等数据结构。

30、前端的SurveyStats和DataDisplay组件都用于显示表格。编写一个新的组件TableDisplay,该组件在给定列名列表和对象列表(所有对象至少包含这些字段)的情况下,能够显示任意表格。

以下是实现 TableDisplay 组件的代码示例:

import React from 'react';
const TableDispla
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值