社区首页 >问答首页 >检查Javascript数组,查看值是否以特定值开头

检查Javascript数组,查看值是否以特定值开头
EN

Stack Overflow用户
提问于 2014-04-10 18:14:51
回答 2查看 108关注 0票数 1

我正在尝试遍历一个数组,并检查是否有任何数组元素以某个值开头。

代码语言:javascript
代码运行次数:0
复制
var availableForms = new Array("S1", "S2", "S2_2", "S3", "S3_2", "S3_3", "S3_4", "S3_5", "S4");    

var classNumber = 1;  

var isComplete = $.map(availableForms, function (value, index) {
    if($.inArray("S"+classNumber, value) != 0) 
    {
        return true;
    }
});

上面的isComplete应该是true

另外,如果是classNumber = 2,它也应该返回true。基本上,当_存在时,我只是在检查它们之前的任何内容,但是如果没有_,那么它就可以匹配它。

现在它只回来了:

代码语言:javascript
代码运行次数:0
复制
[true, true, true, true, true, true, true, true, true]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-10 18:18:25

.map()方法用于构造一个新的值数组,该数组映射到原始值,我不知道为什么要在字符串上使用$.inArray

听起来您需要本机.some()方法。

代码语言:javascript
代码运行次数:0
复制
var availableForms = new Array("S1", "S2", "S2_2", "S3", "S3_2", "S3_3", "S3_4", "S3_5", "S4");    

var classNumber = 1;  

var isComplete = availableForms.some(function(s) {
    return s === "S" + classNumber;
});

只要迭代中至少有一个值从回调中返回一个真正的结果,.some()就会返回true,否则返回false

您可以轻松地将.some()修补到旧浏览器中。

如果必须使用jQuery,则使用$.grep,并比较结果的长度。

代码语言:javascript
代码运行次数:0
复制
var availableForms = new Array("S1", "S2", "S2_2", "S3", "S3_2", "S3_3", "S3_4", "S3_5", "S4");    

var classNumber = 1;  

var isComplete = $.grep(availableForms, function(s) {
    return s === "S" + classNumber;
}).length > 0;

这通常类似于本机Array.prototype.filter方法。

票数 3
EN

Stack Overflow用户

发布于 2014-04-10 18:36:25

如果有人想要一个非jQuery方法,可以简单地迭代数组:

代码语言:javascript
代码运行次数:0
复制
var availableForms = new Array("S1", "S2", "S2_2", "S3", "S3_2", "S3_3", "S3_4", "S3_5", "S4");    

var classNumber = 1;  
var isComplete = false;

for (var i = 0;i<availableForms.length;i++){
    if (availableForms[i] === "S" + classNumber){
        isComplete = true;
    }
}

或者,作为另一种方法(也许更好),您可以为availableForms中每个项的前2个字符创建一个数组:

代码语言:javascript
代码运行次数:0
复制
var availableForms = new Array("S1", "S2", "S2_2", "S3", "S3_2", "S3_3", "S3_4", "S3_5", "S4");

var classNumber = 1;  
var isComplete = false;
var firstCharacters = new Array();

for (var i = 0;i<availableForms.length;i++){
    firstCharacters.push(availableForms[i].slice(0,2));
}

if (firstCharacters.indexOf('S'+classNumber) > -1){
    isComplete = true;
}

我相信有很多更好的方法,但这似乎是好的,从我的头。

更新:

我刚刚注意到cookiemonster已经有了一个非jQuery的答案,所以让我修改如下:如果有人想要一个for-循环答案,这就可以了。

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

https://stackoverflow.com/questions/23002338

复制
相关文章
MySQL分库分表浅谈一、分库分表类型二、分库分表查询三、分库分表的问题四、分库分表策略
一、分库分表类型 1、单库单表 所有数据都放在一个库,一张表。 2、单库多表 数据在一个库,单表水平切分多张表。 3、多库多表 数据库水平切分,表也水平切分。 二、分库分表查询 通过分库分表规则查找到对应的表和库的过程: 如分库分表的规则是acc_id mod 4的方式,当用户新注册了一个账号,账号id的123,我们可以通过acc_id mod 4的方式确定此账号应该保存到Acc_0003表中。当用户123登录的时候,我们通过123 mod 4后确定记录在Acc_0003中。 三、分库分表的问题 分库分表
Clive
2018/04/19
4.1K0
分库分表
如果是创业公司。比如注册用户20w, 每天日活1w, 每天单表1000, 高峰期每秒并发 10 ,这个时候,一般不需要考虑分库分表,如果注册用户2000w, 日活100w, 单表10w条,高峰期每秒并发1000,此时就要考虑分库分表。当然多加几台机器,使用负载均衡可以扛住,但是每天单表数据增加,磁盘资源会被消耗掉,高峰期如果要5000 怎么办,系统肯定撑不住。也就是说,数据增加,请求量增大,并发增大,单个数据库肯定不行。
王小明_HIT
2021/04/30
2.1K0
分库分表
不要为了“分库分表”而“分库分表”
当数据库的数据量过大,大到一定的程度,我们就可以进行分库分表。那么基于什么原则,什么方法进行拆分,这就是本篇所要讲的。
陈琛
2020/06/12
2K0
mysql分表详解
本人混迹qq群2年多了,经常听到有人说“数据表太大了,需要分表”,“xxxx了,要分表”的言论,那么,到底为什么要分表?
仙士可
2019/12/19
4.7K0
mysql分表详解
MySQL 分表查询
分表是一种数据库分割技术,用于将大表拆分成多个小表,以提高数据库的性能和可管理性。在MySQL中,可以使用多种方法进行分表,例如基于范围、哈希或列表等。下面将详细介绍MySQL如何分表以及分表后如何进行数据查询。
孟斯特
2023/10/19
1.1K0
MySQL 分表查询
分库分表初探
面试官:这边有个数据库-单表1千万数据,未来1年还会增长多500万,性能比较慢,说下你的优化思路
Joseph_青椒
2023/08/02
5250
分库分表初探
数据分表小结
本次拆分主要包括订单和优惠券两大块,这两块都是覆盖全集团所有分子公司所有业务线。随着公司的业务飞速发展,不管是存储的要求,还是写入、读取的性都基本上到了警戒水位。
王清培
2018/07/31
5250
数据分库分表
分库分表,顾名思义,既分库亦分表,拆分方式有垂直和水平,通过将单一的数据库,表进行拆分来提高整体数据库的性能
风起--追风
2022/05/20
9530
mysql 分库分表
分表是分散数据库压力的好方法。 分表,最直白的意思,就是将一个表结构分为多个表,然后,可以再同一个库里,也可以放到不同的库。 当然,首先要知道什么情况下,才需要分表。个人觉得单表记录条数达到百万到千万级别时就要使用分表了。 1,分表的分类 1>纵向分表 将本来可以在同一个表的内容,人为划分为多个表。(所谓的本来,是指按照关系型数据库的第三范式要求,是应该在同一个表的。) 分表理由:根据数据的活跃度进行分离,(因为不同活跃的数据,处理方式是不同的) 案例: 对于一个博客系统,文章标题,作者,分类,创建时间等,
wangxl
2018/03/07
3.1K0
分库 / 分表闲聊
大中型项目,一旦数据量比较大,就要进行对数据的拆分了,一般有两种,垂直拆分与水平拆分。
BUG弄潮儿
2021/07/22
8730
基因分库分表
    数据存储中,相互关系的表,尽量分库时落到同一个库中,避免遍历多个库查询,而且还能避免分布式事务。
sdcuike
2020/01/26
1.8K0
MySQL - 分库分表
主从模式对于写少读多的场景确实非常大的优势,但是总会写操作达到瓶颈的时候,导致性能提不上去。
Vincent-yuan
2021/10/09
5.9K0
MySQL - 分库分表
分库分表-ShardingSphere
如果要join的表,是个字典表(表小,数据变动不大),建议做成广播表,所有的库都有存一份。
温安适
2023/10/16
3070
分库分表-ShardingSphere
MySQL分表【转载】
一、时间结构   如果业务系统对时效性较高,比如新闻发布系统的文章表,可以把数据库设计成时间结构,按时间分有几种结构:   1) 平板式   表类似:   article_200901   article_200902   article_200903   用年来分还是用月可自定,但用日期的话表就太多了,也没这必要。一般建议是按月分就可以。   这种分法,其难处在于,假设我要列20条数据,结果这三张表里都有2条,那么业务上很有可能要求读三次表。如果时间长了,有几十张表,而每张表是0条,那不就是要读完整个系统
wangxl
2018/03/08
1.9K0
MySQL分库分表
① 从连接数来看,根据官方文档,5.1.17以上版本,单台mysql数据库的连接数默认是151,上限为10w,虽然可以在上限范围内人为的设置最大连接数,或者建立连接池进行一定程度优化,但单台数据库的性能总是有瓶颈的,当请求量过大的时候,若连接数不够,则会处于阻塞状态
素履coder
2022/09/07
4.5K0
MySQL分库分表
还是分表了
实在没办法了,自己来,呵,不行了最多重新导入,或者放弃这个站就是了。 1、新建系统模型,附加表为:dede_addon_1_20w 2、将原附加表中20万以上数据导入dede_addon_1_20w中: insert into dede_addon_1_20w select * from dede_addonarticle where aid>200000; 3、将原附加表和dede_addon_1_20w换名 rename table dede_addonarticle to dede_addonarti
用户1272546
2018/06/04
5830
MySQL 分库分表
随着互联网及移动互联网的发展,应用系统的数据量也是成指数式增长,若采用单数据库进行数据存储,存在以下性能瓶颈:
用户9615083
2022/12/25
14.2K0
MySQL 分库分表
Mysql分库分表,你如何分,怎样分?
为什么要分表和分区? 日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表。这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能会更加糟糕。分表和表分区的目的就是减少数据库的负担,提高数据库的效率,通常点来讲就是提高表的增删改查效率。
友儿
2022/09/11
2K0
protractor量角器软件_flashback啥意思
protractor 是一个 Node.js 程序,为了运行 protractor ,你首先需要 Node 环境。你还应该检查一下 Node 的版本,它应该在 v0.10.0 以上。
全栈程序员站长
2022/11/01
1.9K0
hive中外部表、内部表、分区表、分桶表
create table student(t_id string,t_name string) row format delimited fields terminated by ‘\t’; 加载数据 ( /export/servers/hivedatas/student .csv 数据在虚拟机上地址) load data local inpath ‘/export/servers/hivedatas/student .csv’ into table student; 在hdfs查看表中的数据 ( /user/hive/warehouse/myhive.db/student 数据在hdfs上的地址) hadoop fs -ls /user/hive/warehouse/myhive.db/student 在hive中查询 select * from student 删除数据表techer drop table student; 再次查看 hadoop fs -ls /user/hive/warehouse/myhive.db/student(数据不存在)
用户4870038
2021/02/05
6760

相似问题

IE7分区创建表

42

Jenkins-量角器集成-Centos7 7

26

Windows 7中的量角器

12

单击事件隐藏2分量角4

13

角度7量角器非角度LoginPage

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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