如果匹配数组中的一项,则拆分字符串

时间:2019-09-05 11:56:26

标签: javascript

如果与数组中一项匹配的值如何分割字符串?我从选定的字段中获取此值:

elegant-themes-line-icons-map-pin

我想分裂:

['elegant-themes-line-icons', 'map-pin']['font-awesome', 'removed']

我在数组中有一些战线清单:

['elegant-themes-line-icons', 'font-awesome', 'simple-line-icons']

,该值应始终为fontname-iconname,我需要像上面的代码一样拆分该值,我喜欢这样的条件:

function onChange(value) {
// example the selected value is 'font-awesome-facebook-alt'
if ( value has font string like font-awesome ) {
   var icons = ['font-awesome', 'facebook-alt'];
} 
}

1 个答案:

答案 0 :(得分:0)

您可以在右侧找到正确的起始字符串和切片。

var list = ['elegant-themes-line-icons', 'font-awesome', 'simple-line-icons'],
    values = ['elegant-themes-line-icons-map-pin', 'font-awesome-removed', 'foo-bar-baz'],
    result = values.map(s => {
        var left = list.find(l => s.startsWith(l)) || '',
            right = left ? s.slice(left.length + 1) : s;
        return [left, right];
    });

console.log(result);