javascript - 在javascript中将字符的位置放入数组的简单方法

标签 javascript jquery arrays

我有这个数组:

var arr = ['char', 'char', '@char', 'char', '@char'];

是否可以通过@获取所有char的位置?

我写了这段代码:(这里是源http://jsfiddle.net/bq84zy1f/)

$('textarea').keyup(
    function() {
        var valOfTextarea = $(this).val();
        var splitedVal = valOfTextarea.split(/\s/);

        var indexOfAt = splitedVal.indexOf('@');

        console.log(splitedVal[indexOfAt]);
    }
);

我仅检索 @ 的索引,当我在 @ (@blabla) 后面写入内容时,索引将返回 -1。但我想用 @char 获取值的位置,并且总是想获取索引,即使录制的文本类似于 @blablaba。

提前致谢。

最佳答案

您可以使用map method过滤掉包含 @ 的项目并返回索引:

var indexOfAt = $.map(splitedVal, function(o, i){
  return o.indexOf('@') != -1 ? i : null;
});

结果是一个数组,其中每个项目的索引都包含 @。对于示例数据,结果将是 [ 2, 4 ]

演示:http://jsfiddle.net/bq84zy1f/1/

关于javascript - 在javascript中将字符的位置放入数组的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28340084/

相关文章:

javascript - 无法在 JSFiddle 上创建图表

javascript - (旧)使用 javascript 处理的 DBF 文件

jquery - Nivo slider 隐藏我的 CSS 菜单

javascript - jquery inArray 意外行为

javascript - 如何将表单转换为数组键值

javascript - 我是否需要向 OAuth2 提供商(例如 google)注册域,或者可以使用我自己的 IP 地址/本地主机来发送请求?

jquery - 从我点击的区域调整大小

jquery - 使用 Cakephp 2.x 上传超过 100MB 文件时的视频文件进度条

javascript - 当我单击数组的值时如何获取特定键

javascript - else if 语句会导致错误,而仅使用 if 语句则不会