2017-10-04 76 views
-1

如何处理截断对象数组中的值?截断对象数组中的值javascript

比方说:

var items = [ 
{ 
    name: "CN=arun, hjsdhjashdj,jsdhjsa,kshd", 
    status: "Present" 
}, { 
    name: "CN=manohar, abcdefghij,111111,2222222", 
    status: "Present" 
}, { 
    name: "manohar", 
    status: "Absent" 
}] 

如何去截断值仅在CN存在并更新项目数组用新的?

更新阵列我需要应该是这样的:

var items = [ 
{ 
    name: "CN=arun...", 
    status: "Present" 
}, { 
    name: "CN=manohar...", 
    status: "Present" 
}, { 
    name: "manohar", 
    status: "Absent" 
}] 

所以基本上,我检查字符串是否包含“CN =”字符串,并在第一个逗号截断,并添加“...”然后像forEach那样更新相同的数组。

+0

似乎是一个简单的循环在阵列上,并检查是否该属性以字符串开始,取代它。 – epascarello

回答

2

您可以循环,检查的CN=存在,劈在第一个逗号,然后添加您的截断...

items.forEach(i => { 
    if (i.name.indexOf("CN=") > -1) { 
     i.name = i.name.split(",")[0] + "..."; 
    } 
}); 
1

你可以更换不需要的部分。

function update(o) { 
 
    o.name = o.name.replace(/,.*$/, '...'); 
 
} 
 

 
var items = [{ name: "CN=arun, hjsdhjashdj,jsdhjsa,kshd", status: "Present" }, { name: "CN=manohar, abcdefghij,111111,2222222", status: "Present" }, { name: "manohar", status: "Absent" }]; 
 

 
items.forEach(update); 
 

 
console.log(items);

1

使用String方法..

var items = [ 
 
{ 
 
    name: "CN=arun, hjsdhjashdj,jsdhjsa,kshd", 
 
    status: "Present" 
 
}, { 
 
    name: "CN=manohar, abcdefghij,111111,2222222", 
 
    status: "Present" 
 
}, { 
 
    name: "manohar", 
 
    status: "Absent" 
 
}]; 
 
items.forEach(function(item){ 
 
    if(item.name.includes('CN=')){ 
 
    var values = item.name.split(','); 
 
    item.name = values[0] + '...'; 
 
    } 
 
}); 
 

 
console.log(items);