JS中如何获取数组中的一部分元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS中如何获取数组中的一部分元素相关的知识,希望对你有一定的参考价值。

需要准备的材料分别是:电脑、html编辑器、浏览器。

1、首先,打开html编辑器,新建html文件,例如:index.html。

2、在index.html的<script>标签中,输入js代码:var a = [123, 567, 86, 90, 234];var b = a.slice(1, 3);document.body.innerText = b;。

3、浏览器运行index.html页面,此时只会打印出数组第2-3个元素。

参考技术A

js获取数组中的一部分元素,有2种方法:slice和filter函数,下面分别介绍。

slice

slice的定义和用法如下,用于截取数组的一段

执行

var arr = [1,2,3,4,5];

arr.slice(1,4);

这2行代码,可以看到截取了1到4下标的代码

filter

filter则用于过滤数组中的一部分元素,剩下的元素就是需要的那部分元素。

现在尝试下面代码,可以将一个数字数组中的偶数过滤掉,只留下奇数。

var arr = [1,2,3,4,5];

arr.filter(e=>e%2==0)

参考技术B 可以用Array中自带的方法:
arrayObj.shift( )
shift 方法可移除数组中的第一个元素并返回该元素。
例如:
var ary=[1,2,3,4];
var a=ary.shift();//a=1;ary=[2,3,4];

arrayObj.slice(start, [end])

slice 方法返回一个 Array 对象,其中包含了 arrayObj 的指定部分。
参数:start,截取数组开始下标。end截止的下标,但不包括end元素
例如:
var ary=[1,2,3,4];
var newary=ary.slice(0, 2);//newary=[1,2],不包括下标2 所对应的元素3。
参考技术C

需要准备的材料分别是:电脑、html编辑器、浏览器。

1、首先,打开html编辑器,新建html文件,例如:index.html。

2、在index.html的<script>标签中,再输入js代码:var a = [123, 567, 86, 90, 234];var b = a.slice(1, 3);document.body.innerText = b;。

3、浏览器运行index.html页面,此时会打印出数组第2-3个元素。

如何在Node.js中提取部分字符串和字符串数组?

【中文标题】如何在Node.js中提取部分字符串和字符串数组?【英文标题】:How to extract part of string an array of strings in Node.js? 【发布时间】:2020-02-05 07:32:30 【问题描述】:

我正在尝试为数组中的每个元素提取字符串的一部分。

我已设法获取所有以 .pdf 结尾的文件,但我不知道如何进行提取部分。

我会假设我需要使用正则表达式来完成这项工作,但是,我不确定从哪里开始。

给定第一个元素./pdf/main/test1.pdf,我想返回/test1.pdf

按照我下面的代码:

    glob('./pdf/main/*.pdf', , (err, files) => 
      console.log(files) // ['./pdf/main/test1.pdf','./pdf/main/test2.pdf' ]
      files.map(f =>  
        // Here I want to extract and return the following output:
        // /test1.pdf
        // /test2.pdf
      )
    )

【问题讨论】:

【参考方案1】:

字符串拆分和使用path.basename可能很容易理解。

如果您想知道如何使用正则表达式提取文件名,您可以尝试以下代码

glob('./pdf/main/*.pdf', , (err, files) => 
   files.map(f => f.match(/.*(?<filename>\/.+?\.pdf)/).groups.filename)

【讨论】:

【参考方案2】:

使用 split 并检索最后一个值应该可以做到这一点

glob('./pdf/main/*.pdf', , (err, files) => 
  console.log(files) // ['./pdf/main/test1.pdf','./pdf/main/test2.pdf' ]
  files.map(f =>  
    let split = f.split('/'); // ['.', 'pdf', 'main', 'test1.pdf']
    return `/$split[split.length - 1]`; // /test1.pdf
  )
)

此外,由于您已标记 node.js,并假设这与文件路径有关,您可以使用 path 模块的 basename 函数来执行此操作,请参见此处

nodejs get file name from absolute path?

glob('./pdf/main/*.pdf', , (err, files) => 
  console.log(files) // ['./pdf/main/test1.pdf','./pdf/main/test2.pdf' ]
  files.map(f => `/$path.basename(f)`); // ['/test1.pdf',  '/test2.pdf']
)

【讨论】:

以上是关于JS中如何获取数组中的一部分元素的主要内容,如果未能解决你的问题,请参考以下文章

js 如何获取两个数组中的不同元素

PHP如何获取数组里元素的个数

js如何获取表单中数组的值?

js中如何获取数组中最大数值的下标值

如何获取数组中的最后一个键?

javascript如何获取元素在数组中的位置key?