从包含特定字符串的对象获取属性

时间:2017-04-06 07:17:52

标签: javascript

我有一个这样的对象:

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

是否可以使用包含“_trust”的属性创建新对象?我不知道该怎么做。

3 个答案:

答案 0 :(得分: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)




答案 1 :(得分: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);




答案 2 :(得分: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;
    }
});