3 回答
TA贡献1816条经验 获得超4个赞
+=运算符不能像您预期的那样处理对象。
尝试=像这样的运算符group[key] = object[key]。
const object = {
a: {prop1: 'abc', prop2: 'def', prop3: 'ghi'},
b: {prop1: 'jkl', prop2: 'mno', prop3: 'pqr'},
c: {prop1: 'abc', prop2: 'def', prop3: 'ghi'},
d: {prop1: 'abc', prop2: 123, prop3: 'ghi'}
};
let group = {};
for (let key in object) {
if (object[key].prop1 === 'abc') {
group[key] = object[key];
}
}
console.log(group);
TA贡献1757条经验 获得超8个赞
你可以试试这个
const object = {
a: {prop1: 'abc', prop2: 'def', prop3: 'ghi'},
b: {prop1: 'jkl', prop2: 'mno', prop3: 'pqr'},
c: {prop1: 'abc', prop2: 'def', prop3: 'ghi'},
d: {prop1: 'abc', prop2: 123, prop3: 'ghi'}
};
let group = {};
for (let key in object) {
if (object[key].prop1 === 'abc') {
group[key] = object[key];
}
console.log(object[key]);
}
console.log(group);
TA贡献1877条经验 获得超6个赞
您使用Object.entries返回对象数组与 [[key, value],[key,value],...] 的组合。接下来,您可以filter根据条件获取数据,最后只保留您想要使用的格式map。
您可以在下面阅读有关这些的更多信息:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries
var object = {
a: {prop1: 'abc', prop2: 'def', prop3: 'ghi'},
b: {prop1: 'jkl', prop2: 'mno', prop3: 'pqr'},
c: {prop1: 'abc', prop2: 'def', prop3: 'ghi'},
d: {prop1: 'abc', prop2: 123, prop3: 'ghi'}
};
var arr = Object.entries(object);
console.log(Object.fromEntries(arr.filter(a=>a[1].prop1==="abc"))); // Keeps your keys
console.log(arr.filter(a=>a[1].prop1==="abc").map(a1=>a1[1])) // Just array of objects
添加回答
举报