나는 코딩하고 있었고이 문제를 발견했습니다. 목표는 항목 배열을 속성 키 / 값이있는 객체로 바꾸고 두 번 이상 나타나는 항목을 계산하는 것입니다.
{
cookie:{
MILK: 1,
CHOCOLATE: 2,
DELUXE: 1
},
bread:{
BIG: 2
},
beer:{
NEW: 1,
OLD: 1
}
}
아래 코드를 시도했습니다.
const items = [
"cookie-MILK",
"cookie-CHOCOLATE",
"cookie-CHOCOLATE",
"cookie-DELUXE",
"bread-BIG",
"bread-BIG",
"beer-NEW",
"beer-OLD"
]
let newArray = [];
items.forEach((e) => {
let splitArray = e.split("-");
newArray.push([splitArray[0], splitArray[1]]);
});
let result = newArray.reduce((acc, val) => {
if (!acc[val[0]] && !acc[val[1]] ) acc[val[0]] = {
[val[1]]: 1,
};
else acc[val[0]][val[1]]++;
return acc;
}, {});
그러나이 코드는 그것을 반환 하고이 질문을 해결하는 방법을 모르겠습니다.
{
cookie:{
MILK: 1,
CHOCOLATE: NaN,
DELUXE: NaN
},
bread:{
BIG: 2
},
beer:{
NEW: 1,
OLD: NaN
}
}
당신은 걸릴 수 논리적 nullish 할당을??=
개체 또는 제로를 할당하고 값을 증가.
const
items = ["cookie-MILK", "cookie-CHOCOLATE", "cookie-CHOCOLATE", "cookie-DELUXE", "bread-BIG", "bread-BIG", "beer-NEW", "beer-OLD"],
result = items.reduce((acc, val) => {
const [left, right] = val.split("-");
(acc[left] ??= {})[right] ??= 0;
acc[left][right]++;
return acc;
}, {});
console.log(result);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다