2017-04-06 196 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; 
    } 
});