Contents
hide
3.条件判断和循环
请创建一个永久循环,在循环中,提示用户输入两个数字,并打印出两个数字区间内的所有奇数。如果用户输入1和5,就打印出1,3,5。如果用户输入的第一个数字大于第二个数字,就结束循环。
while(true) {
var num1 = window.prompt("Enter number 1: ");
var num2 = window.prompt("Enter number 2: ");
if(num1 > num2) {
break;
}
for (var i = num1; i <= num2; i++) {
if (i % 2 != 0) {
console.log(i);
}
}
}
4.函数和参数
请自定义一个函数sumArray(array1, array2),参数必须是两个长度相同的数组,然后在函数中将两个数组中的元素依次相加,返回一个含有相加元素的新数组。以下是调用此方法的效果:
var array1 = [1, 5, 8, 9];
var array2 = [2, 4, 8, 1];
var newArray = sumArray(array1, array2); // [3. 9, 16, 10]
答案:
function sumArray(array1, array2) {
var newArray = []
for (var i = 0; i < array1.length; i++) {
newArray.push(array1[i] + array2[i]);
}
return newArray;
}
5.面对对象
创建一个Car对象类型,其中包含brand,model,year属性。这个类初始化的时候必须要传入品牌名字(比如Subaru),初始化的时候车的型号和生产年会被默认设定为’xxx’和0,Car类型中还需要用内置方法用于修改车型号和生产年,还有可以打印出完整车信息的方法。
请根据要求使用function定义出这个完整的对象类型,并使用此类型创建一个对象,然后使用内置方法修改车的型号和生产年,最后使用类的方法打印出车的完整信息。
对象类型的定义:
function Car(brand) {
this.brand = brand;
this.model = "xxx";
this.year = 0;
this.set_model = function(model) {
this.model = model;
};
this.set_year = function(year) {
this.year = year;
};
this.get_info = function() {
console.log(`Brand: Branch: ${this.brand}, Model: ${this.model}, Year: ${this.year}`);
};
};
Car 类型的调用:
var new_car = new Car("Subaru");
new_car.set_model("WRX");
new_car.set_year(2014);
new_car.get_info();
7.REST NodeJS
请使用 NodeJS 创建以下三个API:
- GET:/json_file?name=xxx 获取特定命名 JSON 文件的内容
- POST: /json_file?name=xxx 通过POST请求在 body 中传入 JSON 数据,更新特定文件,如文件不存在,则新建文件
- DELETE:/json_file?name=xxxx 删除特定命名的 JSON 文件
代码:
const fs = require('fs')
var express = require('express');
var app = express();
app.use(express.json()); // JSON parser for post request
app.get('/json_file', (req, res) => {
try {
let data = fs.readFileSync(`${__dirname}/${req.query.name}.json`)
res.json(JSON.parse(data));
} catch (err) {
console.error(err);
res.send({'error': err.toString()});
}
});
app.post('/json_file', (req, res) => {
try {
const fileName = __dirname + '/' + req.query.name + '.json';
bodyData = req.body;
fs.open(fileName, 'r', (err, fd) => {
if (err) {
fs.writeFile(fileName, JSON.stringify(bodyData), (err) => { if (err) console.log(err); }); // Create new file
} else {
let fileContent = JSON.parse(fs.readFileSync(fileName, 'utf8')); // Read file content
Object.keys(bodyData).forEach( (key) => {fileContent[key] = bodyData[key];});
fs.writeFileSync(fileName, JSON.stringify(fileContent)); // Write content to the file
}
})
res.send({'success': 'File successfully updated.'})
} catch (err) {
console.log(err);
res.send({'error': 'Update json file failed.'})
}
})
app.delete('/json_file', (req, res) => {
try {
fs.unlinkSync(__dirname + "/" + req.query.name + '.json');
res.send({'success': 'File deleted.'})
} catch (err) {
console.log(err);
res.send({'error': 'Delete file failed.'})
}
});
const port = 8080;
app.listen(port, () => {
console.log(`Server listening at http://localhost:${port}`)
})