资讯专栏INFORMATION COLUMN

JS 字符串与数组你必须要知道的API(一)

kelvinlee / 326人阅读

摘要:如果数组只有一个,那么将返回该值而不使用分隔符。示例语法方法使用指定的分隔符字符串将一个对象分割成字符串数组,以将字符串分隔为子字符串,以确定每个拆分的位置。

每天4个JavaScript字符串与数组的API,帮助大家与我自己加深记忆,持续更新... ...

Array.prototype.reverse()

语法: arr.reverse()
MDN: reverse() 方法将数组中元素的位置颠倒,并返回该数组。该方法会改变原数组

var a = [1,2,3];
var _a = a.reverse();
console.log(a); // [3,2,1]
console.log(_a); // [3,2,1]

当然自己实现reverse()方法其实也很简单:

window.Array.prototype.myReverse = function () {
    for(let i=0;ilet temp = this[i];
        this[i] = this[this.length-1-i];
        this[this.length-1-i] = temp;
    }
}
Array.prototype.join()

语法:arr.join([separator])
MDN: join() 方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个value,那么将返回该值而不使用分隔符。示例如下:

var arr = ["唱","跳","Rap","篮球"];
var arrStr1 = arr.join(); console.log(arrStr1); // "唱,跳,Rap,篮球"
var arrStr2 = arr.join(",");console.log(arrStr2); // "唱,跳,Rap,篮球"
var arrStr3 = arr.join("");console.log(arrStr3); // "唱跳Rap篮球"
var arrStr4 = arr.join(" ");console.log(arrStr4); // "唱 跳 Rap 篮球"
var arrStr5 = arr+"";console.log(arrStr5); // "唱,跳,Rap,篮球"
Array.prototype.map()

语法:去MDN自己看
MDN: map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。示例:

var arr = [1,2,3];
var arr2 = arr.map((e)=>{return e*2});console.log(arr2); // [2, 4, 6]
var arr3 = arr.map((e)=>{return e*e});console.log(arr3); //[1, 4, 9]
var arr4 = arr.map((e)=>{return e+""});console.log(arr4); // ["1", "2", "3"]
String.prototype.split()

语法:str.split([separator[, limit]])
MDN: split() 方法使用指定的分隔符字符串将一个String对象分割成字符串数组,以将字符串分隔为子字符串,以确定每个拆分的位置。 示例:

var str = "我是ikun,我喜欢 唱 跳 Rap和篮球";
var strArr1 = str.split();console.log(strArr1); //["我是ikun,我喜欢 唱 跳 Rap和篮球"]
var strArr2 = str.split(" ");console.log(strArr2);//["我是ikun,我喜欢", "唱", "跳", "Rap和篮球"]
var strArr3 = str.split("");console.log(strArr3);
// 如果空字符串("")被用作分隔符,则字符串会在每个字符之间分割。
//["我", "是", "i", "k", "u", "n", ",", "我", "喜", "欢", " ", "唱", " ", "跳", " ", "R", "a", "p", "和", "篮", "球"]
var strArr4 = str.split(",");console.log(strArr4);//["我是ikun", "我喜欢 唱 跳 Rap和篮球"]
反转字符串中的单词

反转字符串中的单词是Leetcode上第557号问题,具体问题描述如下:

给定一个字符串,
你需要反转字符串中每个单词的字符顺序,
同时仍保留空格和单词的初始顺序。

示例 1:

输入: "Let"s take LeetCode contest"
输出: "s"teL ekat edoCteeL tsetnoc" 

注意:在字符串中,每个单词由单个空格分隔,
并且字符串中不会有任何额外的空格。

这道题目使用JavaScript就可以使用上述API解出结果:

/**
 * @param {string} s
 * @return {string}
 */
var reverseWords = function(s) {
    return s.split(" ").map((e)=>{
        return e.split("").reverse().join("")
    }).join(" ");
};

其实仔细想一想这个解题过程并不难,思路为:

step1:
"Let"s take LeetCode contest" => ["Let"s","take","LeetCode","contest"]
step2:
"Let"s" => ["L","e","t",""","s"]=>["s",""","e","t","L"]=> "s"teL"
step3:
["Let"s","take","LeetCode","contest"] => ["s"teL","ekat","edoCteeL","tsetnoc"]
step4:
["s"teL","ekat","edoCteeL","tsetnoc"] => "s"teL ekat edoCteeL tsetnoc" 

本题目重点仍然在API的掌握上~

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/6893.html

相关文章

  • 【面试篇】寒冬求职季之你必须要原生JS(上)

    摘要:循环可以使用的范围包括数组和结构某些类似数组的对象对象,以及字符串。只能遍历数组,不能中断,返回值是修改后的数组。除了之外,等,也有同样的问题。声明一个只读的常量。这在语法上,称为暂时性死区。暂时性死区也意味着不再是一个百分百安全的操作。 互联网寒冬之际,各大公司都缩减了HC,甚至是采取了裁员措施,在这样的大环境之下,想要获得一份更好的工作,必然需要付出更多的努力。 一年前,也许你搞清楚闭包...

    AlphaWatch 评论0 收藏0
  • 【面试篇】寒冬求职季之你必须要原生JS(上)

    摘要:只能遍历数组,不能中断,返回值是修改后的数组。这在语法上,称为暂时性死区。作用域链无论是还是查询,都会在当前的作用域开始查找,如果没有找到,就会向上级作用域继续查找目标标识符,每次上升一个作用域,一直到全局作用域为止。 互联网寒冬之际,各大公司都缩减了HC,甚至是采取了裁员措施,在这样的大环境之下,想要获得一份更好的工作,必然需要付出更多的努力。 一年前,也许你搞清楚闭包,this,原...

    宠来也 评论0 收藏0
  • 【面试篇】寒冬求职季之你必须要原生JS(中)

    摘要:如果你还没读过上篇上篇和中篇并无依赖关系,您可以读过本文之后再阅读上篇,可戳面试篇寒冬求职季之你必须要懂的原生上小姐姐花了近百个小时才完成这篇文章,篇幅较长,希望大家阅读时多花点耐心,力求真正的掌握相关知识点。 互联网寒冬之际,各大公司都缩减了HC,甚至是采取了裁员措施,在这样的大环境之下,想要获得一份更好的工作,必然需要付出更多的努力。 一年前,也许你搞清楚闭包,this,原型链,就...

    Mike617 评论0 收藏0
  • 前端基础汇总

    摘要:及相关问题数据类型函数中指向原型作用域闭包面向对象对象创建模式继承严格模式与对象转换的方法添加属性,根据原型创建区别新特性解构赋值简化对象写法剪头函数三点运算符模板字符串形参默认值异步过程深拷贝与浅拷贝赋值与浅拷贝的区别浅拷贝的几种方法实现 js及es相关问题 数据类型函数中this指向——————原型作用域闭包——————面向对象对象创建模式继承——————Es5严格模式Json与j...

    2json 评论0 收藏0
  • 前端基础汇总

    摘要:及相关问题数据类型函数中指向原型作用域闭包面向对象对象创建模式继承严格模式与对象转换的方法添加属性,根据原型创建区别新特性解构赋值简化对象写法剪头函数三点运算符模板字符串形参默认值异步过程深拷贝与浅拷贝赋值与浅拷贝的区别浅拷贝的几种方法实现 js及es相关问题 数据类型函数中this指向——————原型作用域闭包——————面向对象对象创建模式继承——————Es5严格模式Json与j...

    laznrbfe 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<