2017-10-04 40 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);