Javascript搜索和对象分组

时间:2018-06-22 05:54:05

标签: javascript javascript-objects

这是我的示例对象:

name: 'Jango',
age: 23,
sex: 'male',
phone_0: '0000000',
phone_1: '1111111',
phone_2: '2222222'

在上面的对象上,我想查找是否有任何带有'phone_'的字段,如果存在,我希望将它们拉到另一个数组或对象上。

如何使用Javascript完成此操作?

注意:我在React组件中。

2 个答案:

答案 0 :(得分:2)

您可以使用Object.entries将对象转换为数组。使用reduce遍历数组。使用includes检查字符串是否包含子字符串。

let obj = {
  name: 'Jango',
  age: 23,
  sex: 'male',
  phone_0: '0000000',
  phone_1: '1111111',
  phone_2: '2222222'
}

let result = Object.entries(obj).reduce((c, [k, v]) => {
  if (k.includes('phone_')) c[k] = v;
  return c;
}, {});

console.log(result);

如果要检查密钥的开头是否phone_,也可以使用

substr( k, 0, 6 ) === "phone_"

答案 1 :(得分:0)

const required = _.pick(Object.keys(item).filter(
    key=> key.startsWith(‘phone_’)
    );

_是lodash库。