在对象中,值创建为我的inputput值对象,但我需要检索特定的键值,例如以“ key”开头的值,并且我只需要JavaScript而不需要JSON概念
输入对象
object = {key_11: "12d", item_12: "a2324", key_16: "34|aa"},
{key_14: "345|w", key_21: "a|b", key_12: "56|asa|45", item_16: "66"},
{item_14: "AA|BB, key_15: "44|BB", item_21: "WW"},
{key_25: "25|a|aa|", item_01: "999", key_05: "234"}
输出对象
object = {key_11: "12d", key_16: "34|aa", key_14: "345|w", key_21: "a|b", key_12: >"56|asa|45", key_25: "25|a|aa|", key_05: "234"}
感谢您的帮助
答案 0 :(得分:2)
如果修复语法问题并将对象放入数组中,则可以使用数组方法来帮助您实现这一目标。
要实现这一点,可以使用Object.entries()
将数组中的每个对象转换为键值对数组。然后,您可以使用它来.filter()
除去不是.startsWith()
“键”的条目。最后,您可以使用Object.fromEntries()
重建键值对的对象,然后可以使用扩展语法(...
)将其扩展为累积的对象:
const object = [{
key_11: "12d",
item_12: "a2324",
key_16: "34|aa"
},
{
key_14: "345|w",
key_21: "a|b",
key_12: "56|asa|45",
item_16: "66"
},
{
item_14: "AA|BB",
key_15: "44|BB",
item_21: "WW"
},
{
key_25: "25|a|aa|",
item_01: "999",
key_05: "234"
}
];
const res = object.reduce(
(a, o) => ({ ...a,
...Object.fromEntries(Object.entries(o).filter(([k]) => k.startsWith('key')))
}), {});
console.log(res);
请记住,Object.fromEntries()
当前处于草稿模式,为了与浏览器更兼容,可以使用以下命令:
const object = [{
key_11: "12d",
item_12: "a2324",
key_16: "34|aa"
},
{
key_14: "345|w",
key_21: "a|b",
key_12: "56|asa|45",
item_16: "66"
},
{
item_14: "AA|BB",
key_15: "44|BB",
item_21: "WW"
},
{
key_25: "25|a|aa|",
item_01: "999",
key_05: "234"
}
];
const res = object.reduce(
(a, o) => ({ ...a,
...Object.entries(o).filter(([k]) => k.indexOf('key') === 0).reduce((acc, [k, v]) => ({ ...acc,
[k]: v
}), {})
}), {});
console.log(res);
答案 1 :(得分:1)
如果您要将对象数组合并为一个,请考虑以下事项:
var obj = [{key_11:"12d",item_12:"a2324",key_16:"34|aa"},{key_14:"345|w",key_21:"a|b",key_12:"56|asa|45",item_16:"66"},{item_14:"AA|BB",key_15:"44|BB",item_21: "WW"},{key_25:"25|a|aa|",item_01:"999",key_05:"234"}];
var final = {};
obj.forEach(a => Object.entries(a).forEach(e => e[0].indexOf('key') > -1 ? Object.assign(final, {[e[0]]: e[1]}):0));
console.log(final);
答案 2 :(得分:0)
首先在对象初始化中有一个错字
key_12:>“ 56 | asa | 45”
因此删除多余的>符号并使用键检索值
console.log(object.key_12);
var object = {key_11: "12d", key_16: "34|aa", key_14: "345|w", key_21: "a|b", key_12: "56|asa|45", key_25: "25|a|aa|", key_05: "234"};
console.log(object.key_12);
如果我没有误会希望它能解决您的问题。谢谢
答案 3 :(得分:-1)
您的对象的语法不正确,请考虑使用数组代替:
arrayOfObjects = [{key_11: "12d", item_12: "a2324", key_16: "34|aa"}, {key_14: "345|w", key_21: "a|b", key_12: "56|asa|45", item_16: "66"}, {item_14: "AA|BB", key_15: "44|BB", item_21: "WW"}, {key_25: "25|a|aa|", item_01: "999", key_05: "234"}]