1.字符串数组中每一项的长度

代码:

<script>
var arr = ['hello', 'world!', 'nice', 'to', 'meet', 'you'];var newarr = [];for (var i = 0; i < arr.length; i++) {newarr[newarr.length] = parseInt(arr[i].length);}console.log(newarr);</script>

可以用push:

<script>/** 求字符串数组中每一项的长度*/var arr = ['你', '今天', '真好看', ',nice!', '今天是周五'];var arr_length = [];for (var v of arr) {arr_length.push(v.length);}console.log(arr_length);
</script>

2.将字符串数组用 | 或其他符号分割

代码:

<script>var arr = ['hello', 'world!', 'nice', 'to', 'meet', 'you'];var separator = '|';var a = arr[0];for (var i = 1; i <= arr.length; i++) {a += separator + arr[i];}console.log(a);</script>

可以用其他算法:

<script>var arr = ['fasdfdsfdsf', 'fasdfdsaf', 'fdsafdsf', 'dfsf', '明天是周六'];var arr_str = '';for (var i in arr) {var str_unit = '';if (i < arr.length - 1) {str_unit = '|';}if (i < arr.length - 1) str_unit = '|';arr_str += arr[i] + str_unit;}console.log(arr_str);</script>

或者:

 <script>var arr = ['fasdfdsfdsf', 'fasdfdsaf', 'fdsafdsf', 'dfsf', '明天是周六'];var arr_str = '';for (var i in arr) {if (i == arr.length - 1) {arr_str += arr[i];} else {arr_str += arr[i] + '|';}  console.log(arr_str);}</script>

用三目运算法:

<script>var arr = ['fasdfdsfdsf', 'fasdfdsaf', 'fdsafdsf', 'dfsf', '明天是周六'];var arr_str = '';for (var i in arr) {arr_str += arr[i] + (i == arr.length - 1 ? '' : '|');}console.log(arr_str);</script>

3.有一个从小到大排好序的数组。现输入一个数,要求按原来的规律将它插入数组中.用插入排序法

代码:

<script>var arr = [2, 40, 54, 56, 66, 75, 78, 79, 89, 90, 99, 999];var a = Number(prompt('请输入要加入的数'));arr.push(a);for (var n = 1; n < arr.length; n++) {nowVal = arr[n];_index = n - 1;while (_index >= 0 && nowVal < arr[_index]) {arr[_index + 1] = arr[_index];_index--;}arr[_index + 1] = nowVal;}console.log(arr);</script>

优化一下:他只进行了最后一次排序所以可以:

 <script>var arr = [20, 35, 49, 59, 67, 70, 98, 100];var num = +prompt('请输入您要插入数组中的数:');if (num < arr[0]) {arr.unshift(num);} else {arr.push(num);var nowVal, _index;for (var n = 8; n < arr.length; n++) {// 当前值保存nowVal = arr[n];// 上一个元素的下标值_index = n - 1;// 当前值跟前面每个值作比较// 直到找到比前面数大的位置while (_index >= 0 && nowVal < arr[_index]) {arr[_index + 1] = arr[_index];_index--;}// 找到前面的数的下标值// 下标值 + 1 就是这个数的位置// 把这个值放到当前的位置arr[_index + 1] = nowVal;}}console.log(arr);</script>

4.猴子选大王

要求一群猴子排成一圈,按“1,2,……,n”依次编号。然后从第1只开始数,数到第m只,

把它踢出圈,其后的猴子再从1开始数,数到第m只,再把它踢出去……,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就是我们要找的大王。

- 假设n(猴子总数):8、m(踢出圈的):3

- 第一圈:踢出的猴子编号为3、6,位置编号为3、6。

- 第二圈:踢出的猴子编号为1、5,位置编号为9、12。

- 第三圈:踢出的猴子编号为2、8,位置编号为15、18。

- 第四圈:无。

- 第五圈:踢出的猴子编号为4,位置编号为21。

- 得出猴王编号:7。

- 通过prompt()接收用户传递的猴子总数n和踢出的第m只猴子。

- 利用数组保存所有猴子的编号(1~n)。

- 设置一个变量i,记录每次参与游戏(报数)的猴子位置。

- 通过while循环,只要猴子数组内元素个数大于1,就继续循环。

- 在循环中判断当前猴子的位置i与m求余是否为0,若为零,删除该数组元素。

代码如下:    代码注释有详解

其中考虑以下条件;1.每轮要踢出去第一只猴子时,大王是最后一个猴子

当剩余猴子大于两个就继续循环。踢出

 <script>var sum_monkey = Number(prompt('请输入猴子总数'));var out_monkey = Number(prompt('请输入每轮要踢出去第几只猴子'));var arr = [];for (var i = 1; i <= sum_monkey; i++) {arr.push(i);}//得到一群排序的猴子i = 0;//每次报数的猴子if (out_monkey == 1) {//每轮要踢出去第一只猴子时,大王是最后一个猴子console.log('猴子大王是:' + arr[arr.length - 1]);} else {while (arr.length > 1) {//只有当猴子大于一只时,才会进行踢出去的操作++i;//相当于指针和猴子位置编号。会大于总猴子数head = arr.shift();//从每轮第一只猴子取出,为了判断是否需要踢出。if (i % out_monkey != 0) {//取出的这只猴子编号,与要踢出的求余,等于0,要踢出。不等则放末尾,参与下一轮arr.push(head);}}console.log('猴子大王是:' + arr[0]);} </script>

用js:字符串数组中每一项的长度。将字符串数组用 | 符号分割。有序数组插入排序插入数组。猴子选大王相关推荐

  1. 要求将数组中的0项去掉,将不为0的值存入一个新的数组,

    package Day05;/*** 7.* 现在有如下一个数组:* int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};* 要求将以上数组中的0项去掉,将不 ...

  2. LeetCode 79单词搜索80删除排序数组中的重复项Ⅱ81.搜索旋转排序数组Ⅱ

    新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打 ...

  3. JS删除数组中某一项或几项的方法汇总

    2019独角兽企业重金招聘Python工程师标准>>> 1.JS中的splice方法 splice(index, len, [item])    //注意:该方法会改变原始数组. s ...

  4. day04_ 最长回文子串 / 删除排序数组中的重复项

    day04 5. 最长回文子串 26. 删除排序数组中的重复项 ❗另:java中length,length(),size()区别 5. 最长回文子串 LeetCode链接 给定一个字符串 s,找到 s ...

  5. 把数据库中有关枚举项值的数字字符串转换成文字字符串

    原文:把数据库中有关枚举项值的数字字符串转换成文字字符串 标题可能无法表达我的本意.比如,有这样一个枚举: public enum MyChoice { MyFirstChoice = 0, MySe ...

  6. 【每日一算法】删除排序数组中的重复项

    微信改版,加星标不迷路! 每日一算法-删除排序数组中的重复项 作者:阿广 阅读目录 ? 题目 ? 解析 ? 完整代码 1 题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次 ...

  7. LeetCode 26 号问题 删除数组中的重复项

    删除数组中的重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条 ...

  8. 从JavaScript数组中获取随机项[重复]

    本文翻译自:Get random item from JavaScript array [duplicate] This question already has answers here : 这个问 ...

  9. python【力扣LeetCode算法题库】26-删除排序数组中的重复项

    删除排序数组中的重复项 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) ...

最新文章

  1. win10桌面和手机的扩展API,判断是否有实体后退键API
  2. prism项目搭建 wpf_WPF Step By Step 系列-Prism框架在项目中使用
  3. [CODEVS 1285] 宠物收养所
  4. Django 笔记4 -- 模板
  5. sql limit不接具体数字_SQL别再秀操作了,这么写吧还是。
  6. 骚操作!用Python自动下载抖音美丽小姐姐(有对象的同学小心尝试!)
  7. CRM Fiori my note应用的后台ABAP实现
  8. 连接两个linux系统软件,【技术共享】synergy-两台电脑共享一套鼠标键盘-Linuxwindows...
  9. php bloginfo templatedirectory,WordPress函数:bloginfo(显示博客信息)
  10. IDEA添加外部插件-yuicompressor压缩js/css 笔记
  11. backtrack-回溯搜索算法总结
  12. 常用Gis通用符号库大全
  13. 南京大学计算机考研资料汇总
  14. 我用一张图彻底了解 SpringAOP 切面表达式
  15. 代写品牌故事-品牌故事的结构
  16. 移动硬盘安装ubuntu(UEFI)——遇到的问题以及解决方法
  17. DCGAN生成动漫头像(附代码)
  18. 随机漫步的傻瓜:发现市场和人生中的隐藏机遇
  19. 基于openssl的计算机安全学demo(包含Diffie-Hellman,HAMC,AES的简单应用)
  20. 談話的力量:談話技巧助你成功

热门文章

  1. pdf横向打印java_java通过html生成pdf,支持css和图片以及横向打印
  2. 程序设计入门C语言 --- 素数和
  3. 新型病毒DoubleAgent曝光:攻击计算机前先入侵防病毒软件
  4. Anaconda的卸载及安装(图文详解)
  5. linux用命令下载图片,巧用linux命令做图片下载器
  6. linux根文件系统编译和移植过程
  7. CAE(Convolutional Auto-Encode) 卷积自编码
  8. Package com.google.common.collect
  9. MFC中CreateCompatibleDC的作用
  10. 通过Arrays.asList数组转为集合的坑