Javascript toArray避免削减字符

时间:2018-02-26 12:53:34

标签: javascript

我有一个简单的问题。

这是我的代码,问题是当我运行一些emojis时,它会将它们显示为?,因为它会将表情符号切成两半。

angular.module('Joe.filters').filter("initials", function() {
    return function(string) {
        if (string) {
            var words = string.split(" ");
            if (words.length) {
                string = words[0].charAt(0);
                if (words[1]) {
                    string += words[1].charAt(0);
                }
            }
        }

        return string;
    };
});

现在,我想是否可以用toArray解决这个问题,如果是的话,怎么样? 注意:如果我在控制台中运行"修复"与数组。

j = '';
""

j.length
2

s = _.toArray(j)
[""]

s.length
1

提前致谢!!

1 个答案:

答案 0 :(得分:1)

在ES6中,.charAt[indexing]仍可使用16位单位,但String.iterator知道32位字符。因此,要提取可能超出平面0的第一个字符,您必须强制对字符串进行迭代,例如:



word = 'HELLO';

let b = [...word][0]
// or
let [c] = word

console.log(b, c)




另一种选择是提取第一个代码点并将其转换回字符:

let a = String.fromCodePoint(word.codePointAt(0))

要回答奖金问题,我在我的标准曲目中有这个相当重要的功能"

let first = ([a]) => a

使用此func,您的initials逻辑可以写为

let initials = str => str.split(' ').slice(0, 2).map(first).join('')