这是我的示例对象:
name: 'Jango',
age: 23,
sex: 'male',
phone_0: '0000000',
phone_1: '1111111',
phone_2: '2222222'
在上面的对象上,我想查找是否有任何带有'phone_'的字段,如果存在,我希望将它们拉到另一个数组或对象上。
如何使用Javascript完成此操作?
注意:我在React组件中。
答案 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库。