如果我有对象
post = {
title: "Title",
image_1: "1234",
image_2: "2345"
}
我想得到一个数组:
["1234", "2345"]
这就是我如何过滤要包含在数组中的属性
Object.keys(post).filter(key =>
key.includes("image")
);
并获取一组正确的键。我如何获取值?
答案 0 :(得分:4)
一种方法是先进行过滤,然后映射对象查找:
Object.keys(post)
.filter(key => key.includes("image"))
.map(key => post[key])
或者,使用 Object.entries
获取键和值:
Object.entries(post)
.filter(([key, value]) => key.includes("image"))
.map(([key, value]) => value)
或者,使用 "filter and map" operation:
Object.entries(post)
.flatMap(([key, value]) => key.includes("image") ? [value] : [])
答案 1 :(得分:3)
您可以使用 Object.entries
获取键值对列表,并使用 .forEach
对其进行迭代:
const post = {
title: "Title",
image_1: "1234",
image_2: "2345"
};
const res = [];
Object.entries(post).forEach(([key,value]) => {
if(key.includes("image")) res.push(value);
});
console.log(res);
答案 2 :(得分:0)
const post = { title: "Title", image_1: "1234", image_2: "2345" };
const keys = Object.keys(post).filter(key => key.includes("image"));
const output = keys.map(key => post[key]);
console.log(output); // [ '1234', '2345' ]
答案 3 :(得分:0)
您可以在 reduce
上使用 Object.entries
方法并检查键 startsWith
是否为特定字符串。
const post = {
title: "Title",
image_1: "1234",
image_2: "2345"
}
const result = Object
.entries(post)
.reduce((r, [k, v]) => {
if (k.startsWith('image')) r.push(v);
return r;
}, [])
console.log(result)
答案 4 :(得分:0)
Object.entries
获取条目,然后过滤以 image
开头的条目:
let post={title:"Title",image_1:"1234",image_2:"2345"};
let result = Object.entries(post)
.filter(e => e[0].startsWith('image'))
.flatMap(e => e[1])
console.log(result)