1. const readline = require('readline-sync');
    2. let users = [
    3. ['zhangsan', 123, 500],
    4. ['lisi', 456, 2000]
    5. ]
    6. mian()
    7. //登录函数封装
    8. function login() {
    9. console.log('请输入你的账号:');
    10. let iptId = readline.question();
    11. console.log('请输入你的密码:');
    12. let iptPassword = readline.question() - 0;
    13. let result = users.filter(function (item, index) {
    14. return iptId == item[0] && iptPassword == item[1]
    15. }) // 虽然只验证了两个值,但是会返回整个数组里面的值出来。
    16. console.log(result[0]);
    17. return result[0]
    18. }
    19. //注册函数
    20. function register() {
    21. console.log(`请输入你想注册的账号:`);
    22. let iptId = readline.question();
    23. let result = users.some(function (item) {
    24. return item[0] == iptId
    25. })
    26. if (result.length) {
    27. console.log(`该账号被占用了`);
    28. } else {
    29. console.log(`该账户可以使用`);
    30. console.log(`请输入你想注册的密码:`);
    31. let iptPassword = readline.question() - 0;
    32. users.push([iptId, iptPassword, 0])
    33. console.log(users);
    34. console.log(`注册成功`);
    35. }
    36. }
    37. //存钱函数
    38. function save(user) {
    39. console.log(`请问你要存多少钱:`);
    40. let money = readline.question() - 0;
    41. user[2] += money;
    42. console.log(`存钱${money},总金额${user[2]}`);
    43. console.log(users);
    44. }
    45. // 转账函数
    46. function register1(user) {
    47. let xunhuan = true;
    48. while (xunhuan) {
    49. console.log(`请输入转账账户:`);
    50. let iptId = readline.question();
    51. let result = users.filter(function (item) {
    52. return item[0] == iptId && item[0] != user[0] //不能转给我已经登录的这个人
    53. })
    54. console.log(`想转给${result}`);
    55. //找到人了就该转账了
    56. let xunhuan1 = true;
    57. while (xunhuan1) {
    58. if (result.length) {
    59. console.log(`请输入转账金额:`);
    60. let money = readline.question() - 0;
    61. if (money <= user[2]) {
    62. user[2] -= money;
    63. result[0][2] += money;
    64. console.log(`${user[0]}转给${result[0][0]}${money}元,${user[0]}有${user[2]}元,${result[0][0]}有${result[0][2]}元`);
    65. xunhuan1 = false;
    66. xunhuan = false;
    67. login0 = true;
    68. } else {
    69. console.log(`余额不足`);
    70. xunhuan1 = true;
    71. }
    72. } else {
    73. console.log(`查无此人`);
    74. xunhuan1 = false;
    75. xunhuan = true;
    76. }
    77. }
    78. }
    79. }
    80. //主函数
    81. function mian() {
    82. let dengLu = true;
    83. while (dengLu) {
    84. console.log('请选择:1,登录 2,注册');
    85. let opt = readline.question() - 0;
    86. let user = null;// 声明一个空数组
    87. switch (opt) {
    88. case 1:
    89. //登录函数
    90. user = login() // 将返回出来的值赋给 user 为了后续使用
    91. if (user) {
    92. console.log(`恭喜你登录成功`);
    93. } else {
    94. console.log(`密码或者账号错误`);
    95. }
    96. break;
    97. case 2:
    98. //注册函数
    99. register()
    100. dengLu = true;
    101. break;
    102. }
    103. if (user) {
    104. let login0 = true
    105. while (login0) {
    106. console.log(`请输入:1、存 2、取 3、转 4、退`);
    107. let opt = readline.question() - 0;
    108. switch (opt) {
    109. case 1:
    110. //存钱函数
    111. save(user)
    112. break;
    113. case 2:
    114. break;
    115. case 3:
    116. //转账函数
    117. register1(user)
    118. break;
    119. case 4:
    120. break;
    121. }
    122. }
    123. }
    124. }
    125. }