社区首页 >问答首页 >反向数组,让新阵列中的元素相等于原始阵列元素的长度- JavaScript

反向数组,让新阵列中的元素相等于原始阵列元素的长度- JavaScript
EN

Stack Overflow用户
提问于 2019-05-18 19:28:57
回答 2查看 477关注 0票数 11

试图解决关于Codewar的卡塔

我已经能够将数组反转为字符串,但还不能将该字符串分配到指定长度的单个元素中。我试过:

代码语言:javascript
代码运行次数:0
复制
function ultimateReverse (array) {

 let newArray = array.join("").split("");
 let reversedArray = newArray.reverse();
 return reversedArray.join("");

}

console.log(ultimateReverse(["I", "like", "big", "butts", "and", "I", "cannot", "lie!"]));

//!eiltonnacIdnasttubgibekilI

但我们想要的结果是:

["!", "eilt", "onn", "acIdn", "ast", "t", "ubgibe", "kilI"]

所以根据原始数组,第一个元素的长度应该是1,第二个元素的长度应该是4,第三个元素的长度应该是3,等等。

是否有方法将字符串拆分为元素数组,每个元素都具有指定的长度?

我想从原始数组创建一个条目长度的数组,方法是:

代码语言:javascript
代码运行次数:0
复制
function ultimateReverse (array) {

let elementLengths = [];

let newArray = array.join("").split("");
let reversedArray = newArray.reverse().join("");

for (let i = 0; i < array.length; i++) {
  let element = array[i];
  elementLengths.push(element.length);
}

return reversedArray + " " + elementLengths;

}

console.log(ultimateReverse(["I", "like", "big", "butts", "and", "I", "cannot", "lie!"]));

//!eiltonnacIdnasttubgibekilI 1,4,3,5,3,1,6,4

现在,如果我可以根据原始元素的长度将字符串拆分成数组中的元素.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-18 19:35:32

首先构造完全反向字符串,如

代码语言:javascript
代码运行次数:0
复制
!eiltonnacIdnasttubgibekilI

然后,从初始长度的数组(可以预先使用.map完成),从反向字符串中迭代该数组和slice,并推送到数组:

代码语言:javascript
代码运行次数:0
复制
function ultimateReverse(array) {
  const lengths = array.map(({ length }) => length);
  let reversedStr = [...array.join("")].reverse().join('');
  const result = [];
  lengths.forEach((length) => {
    result.push(reversedStr.slice(0, length));
    reversedStr = reversedStr.slice(length);
  });
  return result;
}

console.log(ultimateReverse(["I", "like", "big", "butts", "and", "I", "cannot", "lie!"]));

您还可以将初始反转数据保留为splice的数组,而不是重新分配reversedStr

代码语言:javascript
代码运行次数:0
复制
function ultimateReverse(array) {
  const lengths = array.map(({ length }) => length);
  const reversedChars = [...array.join('')].reverse();
  return lengths.map(
    length => reversedChars.splice(0, length).join('')
  );
}

console.log(ultimateReverse(["I", "like", "big", "butts", "and", "I", "cannot", "lie!"]));

票数 10
EN

Stack Overflow用户

发布于 2019-05-19 01:35:49

您还可以通过以下方式解决这一问题:尊重字符串,然后通过字符串进行映射,然后使用substr从本质上“将其切割成碎片”:

代码语言:javascript
代码运行次数:0
复制
let reverse = arr => {	
  let i = 0, rData = [...arr.join('')].reverse().join('')
  return arr.map(x => {
    let str = rData.substr(i, x.length)
    i += x.length 
    return str
  })
}

console.log(reverse(["I", "like", "big", "butts", "and", "I", "cannot", "lie!"]))

基本上,映射原始数组和每个字符串的映射,substr从组合的反向字符串映射到当前的x长度。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56204534

复制
相关文章
使用子查询时应当注意的
在一个查询中: UPDATE a SET a.scts = b.v1, a.YCYL = b.v2, a.YCSL = b.v3 FROM kfdbsyy a,           (SELECT f_wellnumber, COUNT(*) AS v1, SUM(f_fule) AS v2,                SUM(f_totalliquid - f_fule) AS v3          FROM (SELECT *                  FROM CY_WELLRECOR
用户1075292
2018/01/23
2K0
第11课 使用子查询使用计算字段作为子查询
我们考虑一个问题,列出订购物品‘RGAN01’的所有顾客的信息,那我们应该用怎样的信息检索?
desperate633
2018/08/22
1.4K0
多表数据汇总查询之6、字段间比较的查询条件
大海:你可以考虑这样啊,先在PQ的数据里构造一个两个数比较的结果列,然后是不是就跟同一条件多值查询(见文章《按条件动态化查询多表数据之4、同一查询条件多值处理》)的一样了?
大海Power
2021/08/30
6990
golang beego orm无限条件查询,多条件查询,不定条件查询,动态多条件查询sql语句,一个字段匹配多值
其实我的需求就是:一个树状目录,每个目录下都存有成果,给定某一个上级目录id,分页查询出这个目录下以及子孙目录下的所有成果,要求分页。
hotqin888
2018/12/19
6.3K0
Django ORM 查询表中某列字段值
方式一获取到的是一个QuerySet,内容是键值对构成的,键为表的列名,值为对应的每个值。
BigYoung小站
2020/05/04
3.7K0
执行Hive查询时出现OOM
使用的是缺省参数每个task分配200M内存「mapred.child.java.opts」
WHYBIGDATA
2023/01/31
9460
执行Hive查询时出现OOM
Hbase的后缀过滤查询
HBase原生自带了对RowKey的很多种查询策略。通过这个过滤器可以在HBase中的数据的多个维度(行,列,数据版本)上进行对数据的筛选操作,也就是说过滤器最终能够筛选的数据能够细化到具体的一个存储单元格上(由行键,列明,时间戳定位)。 其API中提供的Filter大致如下: CompareFilter 是高层的抽象类,下面我们将看到他的实现类和实现类代表的各种过滤条件 RowFilter,FamliyFilter,QualifierFilter,ValueFilter 行,列组,列,值等的过滤
sparkexpert
2018/01/09
3.7K0
Hbase的后缀过滤查询
mysql ddl操作(mysql查询条件执行顺序)
A.对表加锁(表此时只读) B.复制原表物理结构,创建新中间表 C.修改中间表的物理结构 D.把原表数据导入中间表中,数据同步完后,锁定中间表,并删除原表 E.rename中间表为原表 F.刷新数据字典,并释放锁
全栈程序员站长
2022/07/26
2.3K0
Mongodb在查询某个字段是否存在,执行删除字段,python中排序和创建索引
查询字段是否存在 查询course表中,存在lectures_count字段的记录信息 db.course.find( { “lectures.lectures_count”: { $exists: true } } ) 参数:ture或者false 使用update命令,删除单一字段 update命令 update命令格式: db.collection.update(criteria,objNew,upsert,multi) 参数说明: criteria:查询条件 objNew:update对象和
学到老
2018/03/19
3.9K0
Mongodb在查询某个字段是否存在,执行删除字段,python中排序和创建索引
Mysql连接查询时查询条件放在On之后和Where之后的区别
在一次对数据进行统计的时候,需要对两张表进行关联,类似于这样的语句a left join b on a.id = b.id where b.name = xx。发现最终的结果和预期不一致,汇总之后的数据变少了。
翎野君
2023/05/12
1.7K0
Mysql连接查询时查询条件放在On之后和Where之后的区别
SpringBoot中Mongo查询条件是集合中的字段的处理
MongoRepository和普通的Repository一样,继承PagingAndSortingRepository,支持分页和普通的CRUD。之前已经提过Jpa的一些基本操作,下面讲几个 稍微特殊点的。
天涯泪小武
2019/01/17
4.3K0
Mongodb在查询某个字段是否存在,执行删除字段,python中排序和创建索引
查询course表中,存在lectures_count字段的记录信息 db.course.find( { “lectures.lectures_count”: { $exists: true } } ) 参数:ture或者false
学到老
2019/02/14
1.3K0
子查询与子查询的分类(一)
在 SQL 中,子查询是一个查询嵌套在另一个查询中的查询,也被称为内部查询。子查询可以用来创建更复杂的查询,从而实现更高级的数据检索和分析。
堕落飞鸟
2023/05/10
1.7K0
子查询与子查询的分类(二)
子查询可以嵌套在 SELECT、FROM、WHERE 和 HAVING 子句中,以实现更复杂的数据检索和分析。在使用子查询时,需要注意以下几点:
堕落飞鸟
2023/05/10
1.5K0
mysql左连接查询时多条件的注意事项
文章目录 mysql左连接查询时多条件的注意事项 1、返回左表所有数据 2、返回符合条件的数据 mysql左连接查询时多条件的注意事项 1、返回左表所有数据 select * from oilDaily left outer join wellInfo on oilDaily.wellId=wellInfo.wellId and oilDaily.wellId='庆11-001' group by wellId,oilTime order by wellId asc,oilTime asc; 2、返回符
别团等shy哥发育
2023/02/25
1.4K0
Spark SQL解析查询parquet格式Hive表获取分区字段和查询条件
sparksql处理Hive表数据时,判断加载的是否是分区表,以及分区表的字段有哪些?再进一步限制查询分区表必须指定分区?
大数据学习与分享
2020/08/10
2.6K0
Spark SQL解析查询parquet格式Hive表获取分区字段和查询条件
Thinkphp3.2.3查询24小时之内的数据条件
查询24小时之内的数据,拼接语句 /计算24小时之内的时间戳 $startime = time(); $endtime = $startime + 86399; $where =array(); //拼接查询条件方法一 $where['b.a_time'] = array('between',array($startime,$endtime)); $where['a.u_id'] = $id; $where['a.is_read'] = 0; //方法二 //$where['b.a_time']=array
botkenni
2022/01/10
6000
ThinkPHP使用数组条件进行查询之同一字段多个条件
对同一表中多个字段的查询,在thinkPHP中使用数组条件进行查询,有三个好处,第一可以批量设置多个查询字段,第二可以设置多个查询条件,第三结构化你的代码,让代码更具可读性。数组条件查询有简单数组查询、数组表达式查询,一般使用$map保存数组条件。
世纪访客
2018/08/02
2.4K0
ThinkPHP使用数组条件进行查询之同一字段多个条件
mysql varchar类型字段为数字时,不带引号查询时查询结果与事实不符
今天出现了一个bug,在数据库中我们将订单表中的order_no从之前的bigint(20)改成varchar(20)后,原有的代码逻辑在进行时查询时,之前是以Long类型传参查询的。
翎野君
2023/05/12
1.6K0
mysql varchar类型字段为数字时,不带引号查询时查询结果与事实不符
点击加载更多

相似问题

普适SQL ADO.NET数据提供程序

10

ADO.NET事务和SQL Server2008事务

11

SSIS和首选数据提供程序(ADO.NET、ODBC)

23

从SQL转储导入数据库架构

23

将数据库架构从SQL Server2008复制到SQLite

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文