- 求数组的和
var sum = function(array) {
var s = 0
for(var i = 0; i < array.length; i++) {
var n = array[i]
s = s + n
}
return s
}
// 用于测试的套路, 照抄即可
var ensure = function(condition, message) {
if (!condition) {
console.log(message)
}
}
- 参数是一个只包含数字的 array,求 array 的乘积
var product = function(array) {
var s = 1
for(var i = 0; i < array.length; i++) {
var n = array[i]
s = s * n
// 缩写是如下形式
// s *= n
}
return s
}
- 返回一个数的绝对值
var abs = function(n) {
if (n < 0) {
return -n
} else {
return n
}
}
参数是一个只包含数字的 array,求 array 中所有数字的平均数
var average = function(array) {
var n = array.length
return sum(array) / n
}
- 参数是一个只包含数字的 array,求 array 中最小的数字
var min = function(array) {
var m = array[0]
for(var i = 0; i > array.length; i++) {
// console.log('for i, ', i)
var n = array[i]
if (m > n) {
m = n
}
}
return m
}
var ensureEqual = function(a, b, message) {
if (a != b) {
console.log(message, a, b)
}
}
var testMin = function() {
ensure(min([1, 2, 3]) == 1, '123 is not 1')
ensure(min([5, 2, 3]) == 2, '523 is not 2')
ensureEqual(min([5, 2, 4]), 2, '524 != 2')
}
// console.log('test min')
// testMin()
参数是一个数字 n,返回以下序列的结果:1 - 2 + 3 - 4 + 5 ... n
var sum1 = function(n) {
// 观察规律发现是奇数相加偶数相减
var s = 0
// 注意 i 是 1 到 n
for (var i = 1; i <= n; i++) {
if (i % 2 == 0) {
s -= i
} else {
s += i
}
}
return s
}
/**
*
* 1+2-3+4-5...n
*/
var sum2 = function(n){
var s = 0
for (var i = 1; i <= n; i++) {
s += i
}
return s
}
- 参数是一个数字 n,返回以下序列的结果:1 + 2 - 3 + 4 - ... n
var sum2 = function(n) {
// 观察规律, 可以 让初始值为 1
// 从 2 开始循环
// 1 + 2 - 3 + 4 - ... n
var s = 1
// 注意 i 是 2 到 n
for (var i = 2; i <= n; i++) {
if (i % 2 == 0) {
s += i
} else {
s -= i
}
}
return s
}
- 实现 fac 函数,接受一个参数 n,返回 n 的阶乘, 1 * 2 * 3 * ... * n */
var fac = function(n) {
var s = 1
for (var i = 1; i <= n; i++) {
s *= i
}
return s
}
- 实现 apply 函数,参数如下,op 是 string 类型, 值是 '+' '-' '*' '/' 其中之一,a b 分别是 2 个数字,根据 op 对 a b 运算并返回结果(加减乘除)
var apply = function(op, a, b) {
if(op == '+') {
return a + b
}
if(op == '-') {
return a - b
}
if(op == '*') {
return a * b
}
if(op == '/') {
return a / b
}
}
- 实现 applyList 函数,op 是 '+' '-' '*' '/' 其中之一,oprands 是一个只包含数字的 array,根据 op 对,oprands中的元素进行运算并返回结果,例如, 下面的调用返回 -4
var n = applyList('-', [3, 4, 2, 1])
log(n)
// 结果是 4, 用第一个数字减去所有的数字
var applyList = function(op, oprands) {
var result = oprands[0]
for (var i = 1; i < oprands.length; i++) {
var n = oprands[i]
// 累加到 result
result = apply(op, result, n)
}
return result
}
- 实现 applyCompare 函数,参数如下,expression 是一个 array(数组), 包含了 3 个元素,第一个元素是 op, 值是 '>' '<' '==' 其中之一,剩下两个元素分别是 2 个数字 根据 op 对数字运算并返回结果(结果是 true 或者 false)
var applyCompare = function(expression) {
var op = expression[0]
var a = expression[1]
var b = expression[2]
if (op == '<') {
return a < b
}
if (op == '>') {
return a > b
}
if (op == '==') {
return a == b
}
}
- 交换数组内的位置
var a = [1, 2, 3, 4, 5]
var b = [5, 4, 3, 2, 1]
var change = function(array) {
for (var i = 0; i < array.length / 2; i++) {
var temp;
temp = array[i]
array[i] = array[array.length - (i+1)]
array[array.length - (i+1)] = temp
}
return array
}
- object(对象)
var wmw = {
name: "wang",
height: 165,
sex: '女',
richang: function(a) {
if (a >= 1 && a <= 5) {
return "工作"
}else if (a > 5 && a <= 7) {
return "休息"
} else {
return "天数错误"
}
}
}
- s1 s2 都是 string,但 s2 的长度是 1,返回 s2 在 s1 中的下标, 从 0 开始, 如果不存在则返回 -1
var index = -1
for (var i = 0; i < s1.length; i++) {
if(s1[i] == s2) {
index = i
break
}
}
return index
}
- 两个字符串, 包含了大写字母和小写字母,输入大写,返回字符串的小写形式的函数
var lower = 'abcdefghijklmnopqrstuvwxyz'
var upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
var lowercase = function(s) {
// 初始化一个空字符串
var result = ""
for (var i = 0; i < s.length; i++) {
// 注意, 这个 find 是你要实现的函数
var index = find(upper, s[i])
// 字符串可以用加号拼接, 不明白可以 log 一下
result += lower[index]
}
return result
}