2017-04-06 304 views
0

對象屬性我有一個這樣的對象:獲取從包含特定字符串

v = { 
    x1: "x", 
    x1_trust: "y", 
    x2: "something", 
    x2_trust: "something_else" 
} 

是否有可能創建一個包含「_trust」屬性的新對象?我不知道該怎麼做。

+1

搜索克隆對象和篩選。你會得到一個線索 –

回答

1

您可以使用Object.keys()reduce()創建新對象,並使用indexOf()來檢查對象鍵是否包含子字符串。

var v = { 
 
    x1: "x", 
 
    x1_trust: "y", 
 
    x2: "something", 
 
    x2_trust: "something_else" 
 
} 
 

 
var newObj = Object.keys(v).reduce(function(r, key) { 
 
    if (key.indexOf('_trust') != -1) r[key] = v[key]; 
 
    return r; 
 
}, {}); 
 

 
console.log(newObj)

+0

謝謝,先生!這是我想要的。 – Alexandru

0

使用Array#reduce超過Object.keys

var v = { 
 
    x1: "x", 
 
    x1_trust: "y", 
 
    x2: "something", 
 
    x2_trust: "something_else" 
 
}; 
 

 
var op = Object.keys(v).reduce(function(a, b) { 
 
    return (b.indexOf('_trust') > -1) && (a[b] = v[b]), a; 
 
}, {}); 
 

 
console.log(op);

+0

謝謝,我現在明白了! – Alexandru

0

你想讓它只有_trust從你的對象V截取密鑰和值的新對象? 如果是這種情況,請嘗試此代碼(使用jquery)

v = { 
    x1: "x", 
    x1_trust: "y", 
    x2: "something", 
    x2_trust: "something_else" 
} 

var newJson = {}; 
jQuery.each(v, function(key, val) { 
    if(key.indexOf("_trust") > -1){ 
     newJson[key] = val; 
    } 
});