耍朋友是什么意思| 35岁属什么的| 天文是什么意思| 750是什么金| 为什么会一直放屁| 6月29号是什么星座| 彘是什么意思| 大宗商品是什么意思| 见什么知什么| 片仔癀是什么| 可怜巴巴是什么意思| 异性是什么意思| 女人外阴瘙痒用什么药| 心梗吃什么药好得快| 红斑狼疮吃什么药最好| 8.12什么星座| 什么是巧克力囊肿| 什么大笑| 青苹果什么时候成熟| 肝火旺会出现什么症状| ryan是什么意思| 招财猫是什么品种| 为什么汤泡饭对胃不好| 胰岛素是干什么用的| 女生的名字叫什么好听| 沫沫是什么意思| 晒太阳有什么好处| 左手中指痛什么预兆| 小儿流清鼻涕吃什么药效果好| 咽喉炎有什么症状| 面膜什么时候敷效果最好| 腹部胀气是什么原因| 孜孜不倦什么意思| 伊人什么意思| 塑料是什么材质| 纪委是做什么的| 胰腺低密度影什么意思| 乏力没精神容易疲劳是什么原因| 孕妇建档需要检查什么| 什么的摇动| 腰椎间盘突出吃什么药| 出汗多是什么病| 七喜是什么饮料| 小丑叫什么| 1980属什么生肖| 红色尿液是什么原因| 小便多吃什么药好| spa什么意思| 雷诺综合症是什么病| 头疼流鼻血是什么原因| 神夫草抑菌乳膏主治什么| deep是什么意思| 过桥米线为什么叫过桥| 2008属什么| 干咳吃什么药止咳效果好| 用盐刷牙有什么好处和坏处| 吃什么补血小板效果最好| 坐骨神经吃什么药效果最好| 女人吃枸杞有什么好处| 眼睛的睛可以组什么词| 调理脾胃吃什么药| 种生基是什么意思| ab型血可以输什么血| 软柿子是什么意思| 宫禁糜烂用什么药| 聿读什么| 子宫肌瘤变性是什么意思| 孤独的最高境界是什么| 什么叫健康| 1月7号什么星座| 什么食物含锌| 什么是健康证| 政协副主席是什么级别| 克服是什么意思| 荨麻疹什么样| 八点半是什么时辰| hpa是什么意思| 入睡困难吃什么药效果最好| adh是什么| 男人勃不起是什么原因造成的| 做脑部检查挂什么科| 中国劲酒有什么功效| 什么有作为| 牛马是什么意思| 6月1号什么星座| 左眼皮一直跳是什么原因| 荔枝可以做什么菜| 什么动物可以贴在墙上| 数位板是什么| 没有什么就没有发言权| 双鱼座的幸运石是什么| 一个既一个旦念什么| 属猪和什么属相相冲| 飞克手表什么档次| 口什么舌什么| marni是什么牌子| 未成年改名字需要什么手续| 矢什么意思| 四十不惑是什么意思| 七九年属什么生肖| 什么植物好养又适合放在室内| 梦见花椒是什么意思| 续航是什么意思| 断崖式是什么意思| 男人脚底有痣代表什么| 秦朝之前是什么朝代| 婴儿喝什么奶粉最好| 牙缝越来越大是什么原因| cno什么意思| 桑葚干和什么搭配泡水| 碱性磷酸酶偏高说明什么问题| 鼻涕带血是什么原因引起的| 舌头什么颜色正常| hcv是什么病毒| 只羡鸳鸯不羡仙是什么意思| 月经不停吃什么药止血效果比较好| 热菜是什么梗| xxoo什么意思| 体重指数是什么意思| 儿童肚子痛吃什么药| 左手尾戒什么意思| 后背疼是什么原因引起的女性| 江米是什么米| 中耳炎不能吃什么食物| 梦见红鞋子是什么意思| 上吐下泻吃什么好| 黄体酮有什么副作用| 咳嗽喉咙痒吃什么药| 胃出血恢复期吃什么好| 梦见死人预示什么| 心脑血管供血不足吃什么药| 珍珠鸟吃什么食物| 家庭长期饮用什么水最好| 78岁属什么生肖| 十年什么婚| 确立是什么意思| 酸梅汤不能和什么一起吃| 下午3点是什么时辰| 等代表什么生肖| 鸡蛋和什么炒好吃| 莆田荔枝什么时候成熟| 日前是什么意思| 正月初八是什么星座| 为什么会起水泡| 加盟资质需要什么条件| nt是什么货币| 塑料是什么材质| 肌张力高有什么症状| 金色葡萄球菌用什么药| 嘴唇发紫是什么原因引起的| 梦见鹦鹉是什么征兆| 吃brunch是什么意思啊| 高祖父的爸爸叫什么| 给老师送什么礼物好| 辣椒红是什么| 考拉吃什么食物| 月经不调看什么科室| 头发硬适合什么发型| 一月八号是什么星座| 为什么突然流鼻血| 什么是裸眼视力| 吃西瓜有什么好处| 只羡鸳鸯不羡仙是什么意思| 辛酉日五行属什么| 篮板是什么意思| 桃李满天下是什么意思| 36计第一计是什么| 男人早泄吃什么药最好| 灌肠为什么能通输卵管| 剁椒鱼头是什么鱼头| 睡眠障碍应该挂什么科室| 嘴巴发甜是什么原因| 唐朝以后是什么朝代| 阴道骚痒是什么原因| 踏实是什么意思| hdv是什么病毒| 什么是细菌感染| 肚子胀不排便什么原因| 爱情是个什么东西| 宫颈纳囊什么意思| 克罗心是什么意思| 什么时候断奶最合适| 薰衣草什么时候开花| 迷失自我是什么意思| 无名指戴戒指代表什么| 什么什么于怀| 精液是什么| 肠胃镜挂什么科| 祛斑喝什么花茶最有效| 恐龙蛋是什么水果| 一龙一什么填十二生肖| 尿亚硝酸盐阳性是什么意思| 1987年属什么今年多大| 流产有什么症状或感觉| 精字五行属什么| 一年四季穿棉衣是什么生肖| p0是什么意思| 少女怀春是什么意思| 子宫附件是什么| 为什么不可以| 什么是单克隆抗体| 血小板压积偏低是什么意思| 手上起皮是什么原因| 五月17号是什么星座| 阿司匹林是什么药| 叕什么意思| 扒灰什么意思| 卵磷脂什么牌子好| out什么意思| 什么是呼吸性碱中毒| 才高八斗什么生肖| 长癣是什么原因引起的| 一天两包烟会导致什么后果| 龟头炎什么症状| 天津五行属什么| 海椒是什么辣椒| 金达莱花是什么花| 低血糖吃什么| 表面活性剂是什么| 苔菜是什么菜图片| 腰椎ct能查出什么| 佩戴狼牙有什么好处| 肾阴虚的症状是什么| 1991年五行属什么| 王是什么生肖| 吃什么补血效果最好| 除了火车什么车最长| 6月1日什么星座| 所剩无几是什么意思| 佝偻病什么症状| 有口臭是什么原因引起的| 孕吐什么时候开始| 乳腺属于什么科室| 韧带损伤挂什么科| 胳膊肘往外拐是什么意思| 拔完智齿第三天可以吃什么| 乐可是什么| 大便变细是什么原因| eu是什么元素| 什么是瞬时速度| 冠心病吃什么药| 身正不怕影子斜是什么意思| 过敏源挂什么科| 茉莉花长什么样| 吃羊肉不能吃什么水果| 小巫见大巫是什么意思| 上位者是什么意思| 脚汗多是什么原因| 那敢情好是什么意思| 煮玉米放盐起什么作用| 何德何能是什么意思| 胎位头位是什么意思| 双马尾是什么意思| 石英岩玉是什么| 月经来吃什么好| 生理期吃什么比较好| 清分日期是什么意思| mopar是什么牌子| 什么是讨好型人格| 女人吃榴莲有什么好处| 甲状腺结节看什么科室最好| 入职体检前要注意什么| 金酒兑什么好喝| 阴阳和合是什么意思| 百度Jump to content

捷创技术(股票代码831817)新三板上市最新公告列表

From Wikiversity

arrays.js

[edit | edit source]
百度 集市作为地理概念和地理实休,是社会经济发展到某种特定阶段的产物。
/* """This program demonstrates file, list, and tuple processing.

It creates a temporary file, adds data to the file, and reads the file
into an array of arrays. It then provides a menu of options for displaying 
and searching the file data.

It will not run if the file already exists.

Input:
    None

Output:
    A temporary file and file contents.

References:

*/

const fs = require("fs");

if (typeof module != "undefined" && !module.parent) {
    main();
}

/**
  * Runs the main program logic.
  */
function main()
{
    let filename = "~temperatures.txt";

    if(fileExists(filename))
    {
        console.log(`File already exists: ${filename}`)
        process.exit(1)
    }

    createFile(filename);
    let temperatures = readFile(filename);
    deleteFile(filename);

    while (true) {
        let choice = getChoice();
        switch (choice) {
            case "1":
                displayTemperatures(temperatures, "Celsius")
                break;
            case "2":
                displayTemperatures(temperatures, "Fahrenheit")
                break;
            case "3":
                searchTemperatures(temperatures, "Celsius")
                break;
            case "4":
                searchTemperatures(temperatures, "Fahrenheit")
                break
            default:
                return;
        }    
    }
}

/**
 * Creates a text file.
 * 
 * @param Text filename to create.
 */
function createFile(filename)
{
    let data = '"C","F"\n';
    for(let celsius = 0; celsius <= 100; celsius += 10)
    {
        let fahrenheit = celsius * 9 / 5 + 32;
        data += `${celsius.toFixed(1)},${fahrenheit.toFixed(1)}\n`;
    }

    try {
        fs.writeFileSync(filename, data);
    } catch (error) {
        console.error(error);
    }
}

/**
 * Reads a text file.
 * 
 * File must be formatted as CSV with:
 * "C","F"
 * number,number
 * 
 * @param Text filename to read
 * @returns array of arrays
 * @throws RangeError if file format is invalid
 */
function readFile(filename)
{
    try {
        let data = fs.readFileSync(filename, "utf-8");
        let lines = data.trim().split("\n");
        
        let header = lines[0];
        if (header != '"C","F"') {
            throw new RangeError(`Invalid header format found in ${filename}: ${header}`)
        }

        lines.shift();
        let temperatures = [];
        for(const line of lines) {
            let row = line.split(",");
            if (row.length != 2 || isNaN(row[0]) || isNaN(row[1])) {
                throw new RangeError(`Invalid data format found in ${filename}: ${row}`)
            }

            row[0] = Number(row[0]);
            row[1] = Number(row[1]);
            temperatures.push(row);
        }

        return temperatures;
    } catch (error) {
        console.error(error);
        process.exit(2)
    }
}

/**
 * Deletes a file.
 * 
 * @param Text filename to delete.
 */
function deleteFile(filename)
{
    try {
        fs.unlinkSync(filename);
    } catch (error) {
        console.error(error);
    }
}

/**
 * Checks to see if a file exists.
 * 
 * @param Text filename to check.
 * @returns true if exists or false if not.
 */
function fileExists(filename)
{
    return fs.existsSync(filename);
}

/**
 * Input function to get input in Node environment.
 * 
 * @param {string} text prompt
 * @returns {string} input
 */
 function prompt(text) {
    const rls = require('readline-sync');
    let value = rls.question(text);
    return value;
}

/**
 * Displays menu and gets user choice.
 * 
 * @returns text choice or empty string.
 */
function getChoice() {
    const menu = "Select from the following options or press <Enter> to quit:\n" +
        "1. Display table sorted by Celsius temperature.\n" +
        "2. Display table sorted by Fahrenheit temperature.\n" +
        "3. Search for Celsius temperaturen.\n" +
        "4. Search for Fahrenheit temperature.\n";

    while (true) {
        console.log(menu);
        let choice = prompt("Enter choice: ");
        console.log("");
        if (choice === "") {
            return choice;
        }

        if (choice.length == 1 && "1234".includes(choice)) {
            return choice;
        }

        console.log(`${choice} is not a valid choice.\n`);        
    }
}

/**
 * Displays temperature array.
 * 
 * @param array temperatures.
 * @param scale "Celsius" or "Fahrenheit"
 * @throws RangeError if scale is invalid
 */
function displayTemperatures(temperatures, scale) {
    let firstColumn = undefined;
    let secondColumn = undefined;

    switch (scale) {
        case "Celsius":
            temperatures.sort(compareCelsius);
            console.log("C\tF");
            firstColumn = 0;
            secondColumn = 1;
            break;
        case "Fahrenheit":
            console.log("F\tC");
            firstColumn = 1;
            secondColumn = 0;
            break;
        default:
            throw new RangeError("Scale must be Celsius or Fahrenheit");
    }

    for(const row of temperatures) {
        console.log(`${row[firstColumn]}\t${row[secondColumn]}`);
    }

    console.log("");
}

/**
 * Get temperature to search for.
 * 
 * @param scale "Celsius" or "Fahrenheit"
 * @throws RangeError if scale is invalid
 * @returns Number or empty string
 */
function getTemperature(scale) {
    if (!["Celsius", "Fahrenheit"].includes(scale)) {
        throw new RangeError("Scale must be Celsius or Fahrenheit");
    }

    let temperature = prompt(`Enter ${scale} temperature: `);
    if (temperature == "") {
        return temperature;
    }

    if (isNaN(temperature)) {
        return "";
    }

    return Number(temperature);
}

/**
 * Searches temperature array to display nearest values.
 * 
 * @param array temperatures
 * @param scale "Celsius" or "Fahrenheit"
 * @throws RangeError if scale is invalid
 */
function searchTemperatures(temperatures, scale) {
    let searchElement = undefined;
    let displayElement = undefined;
    let otherScale = undefined;

    switch (scale) {
        case "Celsius":
            temperatures.sort(compareCelsius);
            searchElement = 0;
            displayElement = 1;
            otherScale = "Fahrenheit";
            break;
        case "Fahrenheit":
            temperatures.sort(compareFahrenheit);
            searchElement = 1;
            displayElement = 0;
            otherScale = "Celsius";
            break;
        default:
            throw new RangeError("Scale must be Celsius or Fahrenheit");
    }

    let temperature = getTemperature(scale);
    if (temperature === "") {
        return;
    }

    let last = temperatures[0];
    let row = undefined;
    for (row of temperatures) {
        if (temperature < row[searchElement]) {
            break;
        }
        last = row;
    }

    if (temperature < last[searchElement]) {
        console.log(`${temperature.toFixed(1)} ${scale} ` + 
            `is less than ${last[displayElement].toFixed(1)} ${otherScale}\n`)
    } else if (temperature == last[searchElement]) {
        console.log(`${temperature.toFixed(1)} ${scale} ` + 
            `is ${last[displayElement].toFixed(1)} ${otherScale}\n`)
    } else if (temperature > row[searchElement]) {
        console.log(`${temperature.toFixed(1)} ${scale} ` + 
            `is greater than ${last[displayElement].toFixed(1)} ${otherScale}\n`)
    } else {
        console.log(`${temperature.toFixed(1)} ${scale} ` + 
            `is between ${last[displayElement].toFixed(1)} ${otherScale} ` +
            `and ${row[displayElement].toFixed(1)} ${otherScale}\n`)
    }
}

/**
 * Compare temperature array elements for sort by Celsius.
 * 
 * @param a temperature element
 * @param b temperature element
 * @returns a - b
 */
function compareCelsius(a, b) {
    return Number(a[0]) - Number(b[0]);
}

/**
 * Compare temperature array elements for sort by Fahrenheit.
 * 
 * @param a temperature element
 * @param b temperature element
 * @returns a - b
 */
 function compareFahrenheit(a, b) {
    return Number(a[1]) - Number(b[1]);
}

Try It

[edit | edit source]

Copy and paste the code above into one of the following free online development environments or use your own JavaScript compiler / interpreter / IDE.

See Also

[edit | edit source]
86年属虎是什么命 睡觉开风扇有什么危害 梦见自己大笑是什么意思 山川是什么意思 吃什么降尿酸最有效
知了为什么会叫 支付宝余额和余额宝有什么区别 卤水是什么成分 罗汉果有什么功效 突然晕厥是什么原因
嗜碱性粒细胞偏低说明什么 雨花石是什么石头 丑时五行属什么 合盘是什么意思 沙棘不能和什么一起吃
青字五行属什么 姓氏是什么意思 什么是介入手术 眼睛流水是什么原因 草莓是什么植物
吃什么中药能降血压xscnpatent.com 为什么空调不制冷hcv8jop4ns4r.cn 田螺不能和什么一起吃hcv8jop3ns1r.cn 肚子里有积水是什么病hcv8jop2ns7r.cn 住院医师是什么意思hcv9jop1ns2r.cn
灵芝孢子粉治什么病hcv9jop3ns6r.cn 免疫力是什么意思hlguo.com ct平扫能检查出什么inbungee.com 鸡与什么生肖相合hcv8jop9ns2r.cn 右手麻木是什么原因引起的hcv9jop5ns0r.cn
征字五行属什么hcv8jop9ns9r.cn 7月5日是什么日子hcv8jop2ns9r.cn 400年前是什么朝代hcv8jop3ns1r.cn 风湿什么药好hcv8jop7ns0r.cn ohs是什么意思hcv7jop5ns2r.cn
AUx是什么品牌adwl56.com 梦见自己嫁人了预示着什么hcv7jop5ns3r.cn 木薯粉是什么粉hcv9jop3ns1r.cn 无大碍是什么意思hcv8jop0ns3r.cn 清点是什么意思0297y7.com
百度