What I have
1.keys: similar key name(such as a0,a1,a2)
2.obj: a lot of similar key-value pairs in one object
3.number: the times similar key-value pairs looped in obj1)
4.arr: a array without the number in the key(only keep “a”, no “a0″,”a1″,”a2”)
p.s. “aa”,”bb”,”cc” are examples, the value can be anything
JavaScript
x
8
1
let keys = ["javascript","java","python","php"];
2
let number = 3;
3
let obj = {
4
javascript0:"a",java0:"b",python0:"c",php0:"d",
5
javascript1:"aa",java1:"bb",python1:"cc",php1:"dd",
6
javascript2:"aaa",java2:"bbb",python2:"ccc",php2:"ddd",
7
}
8
What I want
JavaScript
1
7
1
let arr = [
2
{javascript:"a",java:"b",python:"c",php:"d"},
3
{javascript:"aa",java:"bb",python:"cc",php:"dd"},
4
{javascript:"aaa",java:"bbb",python:"ccc",php:"ddd"}
5
]
6
7
How can I get array?
Advertisement
Answer
JavaScript
1
29
29
1
let keys = ["javascript", "java", "python", "php"];
2
3
let obj = {
4
javascript0: "a0",
5
java0: "b0",
6
python0: "c0",
7
php0: "d0",
8
javascript1: "a1",
9
java1: "b1",
10
python1: "c1",
11
php1: "d1",
12
javascript2: "a2",
13
java2: "b2",
14
python2: "c2",
15
php2: "d2",
16
};
17
18
let result = [];
19
let number = 3;
20
for (i = 0; i < number; i++) {
21
let _r = {};
22
keys.forEach((item) => {
23
if (obj.hasOwnProperty(`${item}${i}`)) {
24
_r[item] = obj[`${item}${i}`];
25
}
26
});
27
result.push(_r);
28
}
29
console.log(result);