jquery - 不使用分隔符分割字符串,然后使用 alpha 索引索引到对象中

标签 jquery object split

我想不使用分隔符分割字符串(有效地按每个字符分割字符串),然后按字母顺序索引到对象中。我希望它利用 jQuery。

这是我的尝试,但这会分成一个数组,并且通过方括号访问元素(obj_to_chars[0]obj_to_chars[1] 等),但我希望能够使用点表示法访问元素,如下所示: obj_of_chars.aobj_of_chars.b 等。

var str = 'The quick brown fox jumps over the lazy dog.';
var obj_of_chars = {};
obj_of_chars = str.split("");
console.log(obj_of_chars);
// what I have: [ "T", "h", "e", " ", "q", "u", "i", "c", "k", " ", "b", "r", "o", "w", "n", " fox", " ", "j", "u", "m", "p", "s", " ", "o", "v", "e", "r", " ", "t", "h", "e", " ", "l", "a", "z", "y", " ", "d", "o", "g", "." ]
// what I want: { a: "T", b: "h", c: "e", d: " ", e: "q", ..., aa, ab, ... }

编辑:解决方案应该允许对象中超过 26 个字符。(对那些已经编写了一段代码的人表示抱歉,刚刚意识到我需要超过 26 个字符)

最佳答案

这是一种方法:

var input = "Hello world";
var output = {};
for(var i = 0; i < input.length; ++i) {
    var prop = String.fromCharCode(97 + i); // 97 = ASCII code for "a"
    output[prop] = input.charAt(i);
}

如果输入字符串的长度超过 26,此代码将溢出字母表并开始使用非字母字符作为键。如果您想避免这种情况,请修改相应设置 prop 的表达式。

更新:以下是如何无限期地继续字母数字属性名称方案:

var input = "Hello worldHello worldHello worldHello worldHello worldHello world";
var output = {};
var name = ['a'];
for(var i = 0; i < input.length; ++i) {
    output[name.join("")] = input.substr(i, 1);
    for (var j = name.length - 1; j >= 0; --j) {
        if(name[j] != 'z') {
            name[j] = String.fromCharCode(name[j].charCodeAt(0) + 1);
            break;
        }
        else {
            name[j] = 'a';
            if(j == 0) {
                name.unshift('a');
            }
        }
    }
}

关于jquery - 不使用分隔符分割字符串,然后使用 alpha 索引索引到对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8950759/

相关文章:

javascript - jQuery 在 Flash 中打开 url

java - 如何从对象中获取值

javascript - 遍历包含数组的 JSON 对象包含包含数组的对象包含等

java - 通过循环创建多个同名对象

javascript - string.split ('/' )没有给出正确的数组

javascript - 在 Ul 上使用向上/向下箭头到达溢出自动元素的顶部/底部时显示隐藏的元素

javascript - 未捕获的类型错误 : Cannot use 'in' operator to search for 'scrollLeft' in undefined

javascript - 我怎样才能以 <a href="开始并在此处有一个数组元素然后以 </a> 结束?

java - 用冒号分割字符串并在 xml 中以新行显示

javascript - JS & Jquery : functions goes crazy after being called.