早上起来看了一道js的面试题,是这样描述的:利用var s1=prompt("请输入任意的字符串","")可以获取用户输入

的字符串,试编程将用户输入的字符串“反转”,并且将字符串输出。

想了一下,字符串对象的方法中并没有实现反转的,但是数组中有,于是考虑了字符串和数组的相互转换问题。

JS中的内置对象中包括字符串对象(String)和数组对象(Array),这两个对象是可以通过它们对象的方法实现相互

转化的。对于String对象,提供了对字符串进行操作的属性和方法;对于Array对象,提供了数组操作方面的属性和方

法。因此我们实现上面的面试题就容易了。

一首先来看字符串转化为数组

String对象中的split()方法

上述方法的功能是:将一个字符串切割成若干段,返回一个数组。也就是说,可以将一个字符串转成数值。如:

strObj.split(分割号),参数是一个分割号的字符串,用指定的分割号将字符串切成若干段。

实例:

  1. <span style="font-size:18px;">//要求输出今天是星期几
  2. //定义一个星期字符串
  3. var str="星期日,星期一,星期二,星期三,星期四,星期五,星期六";
  4. //创建一个日期对象
  5. var today=new Date();
  6. //使用today对象的getDay()方法
  7. var week=today.getDay();
  8. //将星期字符串分割成一个数组
  9. var arr=str.split(",");
  10. document.write("类型是:"+typeof(arr)+",数组的第一个元素是:"+arr[0]+"<br />");
  11. //输出结果
  12. document.write("今天是:"+arr[week]);</span>

输出的结果是:类型是:object,数组的第一个元素是:星期日

今天是:星期五

二再来看数组转换为字符串和数组元素实现反转

Array对象的join()方法

上述方法的功能是:将一个数组转成字符串。如:arrObj.join(连接号),将一个数组用指定的连接号链接成一个字

符串。

实例:

  1. <span style="font-size:18px;">var arr=["a","b","c"];
  2. var str=arr.join("-");
  3. document.write("类型是:"+typeof(str)+",字符串是:"+str);</span>

输出的结果是:类型是:string,字符串是:a-b-c

Array对象的reverse()方法

上述方法的功能是:将数组中各元素颠倒顺序。如:arrObj.reverse()。

实例:

  1. <span style="font-size:18px;">var arr=["a","b","c"];
  2. arr.reverse();
  3. document.write(arr);</span>

输出的结果是:c,b,a

三最后我们来看面试题的实现代码:

  1. <span style="font-size:18px;">/*
  2. 利用var s1=prompt("请输入任意的字符串","")可以获取用户输入
  3. 的字符串,试编程将用户输入的字符串“反转”,并且将字符串输出。
  4. */
  5. //接受字符串
  6. var s1=prompt("请输入任意的字符串","");
  7. //字符串转换为数组
  8. var arr=s1.split("");
  9. //利用数组对象的reverse()方法实现反转
  10. arr.reverse();
  11. //利用数组的join()方法转换为字符串
  12. var str=arr.join("");
  13. document.write(str);</span>

实现的结果:

合成一条语句就是:var result = "beijing".split("").reverse().join("");
 
from: http://blog.csdn.net/erlian1992/article/details/50561452

JS中实现字符串和数组的相互转化的更多相关文章

  1. js中构造字符串若放入Grails中gsp的<g:link>标签出错

    Grails的ajax使用json格式返回,在js中构造字符串时若放入<g:link>标签,字符串构造就会错误 如下就会发生错误,导致回调函数无法执行 function show(obj) ...

  2. js中Json字符串如何转成Json对象(4种转换方式)

    js中Json字符串如何转成Json对象(4种转换方式) 一.总结 一句话总结:原生方法(就是浏览器默认支持的方法) 浏览器支持的转换方式(Firefox,chrome,opera,safari,ie ...

  3. JS中字符串和数组的相互转化

    题目:利用var s1=prompt("请输入任意的字符串:") ,可以获取用户输入的字符串,试编程将用户输入的字符串“反转”,并且将字符串输出. 思路:字符串对象的方法中并没有实 ...

  4. js字符串和数组的相互转化

    一.数组转字符串 需要将数组元素用某个字符连接成字符串,示例代码如下: var a, b; a = new Array(0,1,2,3,4); b = a.join("-"); 二 ...

  5. js 中对字符串的操作

    1.split() split() 方法用于把一个字符串分割成字符串数组. 用法:stringObject.split(separator,howmany) separator:必选,类型为字符串或者 ...

  6. js中的对象与数组

    js对象与数组是js中最基本的概念, 定义对象时可用 var a = {} 定义一个空对象 定义数组时可用 var a = [] 定义一个空字符串.. 在对象中只是存在属性,属性与值之间用" ...

  7. js 中 一些重要的数组方法

    今天在学Vue的时候,看到了好多JS的数组方法,但是我不知道,我以为是Vue的方法,结果找了半天资料也没找出来,最后才发现这是JS的数组对象方法,于是就想做一下笔记,加深一下印象. Array 对象方 ...

  8. JS中把字符串转成JSON对象的方法

    在JS中,把 json 格式的字符串转成JSON对象,关键代码 json = eval('('+str+')'); <!DOCTYPE html PUBLIC "-//W3C//DTD ...

  9. JS中清空字符串前后空格

    在JS 操作的时候 长期会有对字符串的操作, 但是在JS 中不像在C#中 有字符串的方法 Trim() 来对字符串进行处理 .  所以自己写一个对字符串前后清楚空格的方法还是有必要的 以免以后忘记了 ...

随机推荐

  1. cocos2dx2.x 创建项目

    cocos2d-x下载地址:http://www.cocos2d-x.org/download 2.0之后的创建项目比较easy了 第一步,首先 cd cocos2d-x-2.2.1/tools/pr ...

  2. c++ primer 11 泛型算法

    使用泛型算法必须包含头文件#inlucde <algorithm> 标准库还定义一组泛化的算术算法,其命名习惯与泛型算法相同,包含头文件#include <numeric> f ...

  3. EOJ 3260 袋鼠妈妈找孩子

    暴力搜索. 主要目的就是找到任意一条路径,使得路径长度大于等于$k+1$,写个爆搜发现很快能出解.判断某点是否可走,需要看四周有没有已经走过的点的$dis$比这个点的$dis$小$2$或者$2$以上. ...

  4. HDU 6024 Building Shops

    $dp$. $dp[i]$表示到$i$位置,且$i$位置建立了的最小花费,那么$dp[i] = min(dp[k]+cost[i+1][k-1])$,$k$是上一个建的位置.最后枚举$dp[i]$,加 ...

  5. Servlet技术——Servlet基础

    Servlet是运行在Web服务器端的Java应用程序,它使用Java语言编写,具有Java语言的优点.与Java程序的区别是,Servlet对象主要封装了对HTTP请求的处理,并且它的运行需要Ser ...

  6. hdu 1690 Bus System (有点恶心)

    Problem Description Because of the huge population of China, public transportation is very important ...

  7. 莫队p2 【bzoj3809】Gty的二逼妹子序列

    发现一篇已经够长了...所以就放在这里吧... http://hzwer.com/5749.html ↑依然是看大牛题解过的   袜子那道题太简单了.... 然后被这道题超时卡了一段时间....... ...

  8. 使用SQL语句将数据库中的两个表合并成一张表

    select * into 新表名 from (select * from T1 union all select * from T2)  这个语句可以实现将合并的数据追加到一个新表中. 不合并重复数 ...

  9. poj2117 Electricity

      试题描述 求一个图删除一个点之后,联通块最多有多少. 输入 多组数据.第一行两个整数 P,C 表示点数和边数.接下来 C 行每行两个整数 p1,p2,表示 p1 与 p2 有边连接,保证无重边.读 ...

  10. css中!important的优先级问题

    css中!important的优先级在主页面中写>在外部引用的css文件 之前我一直以为css的样式不管写在哪里只要加上!important那么它的优先级就是最高的,事实上并不是这样的,尤其在动 ...