4 回答

TA貢獻1111條經驗 獲得超0個贊
對于初學者,不返回新數組。如果要返回新數組,請改用。Array.prototype.forEachArray.prototype.map
我之所以這么說,只是因為您將其分配給測試,這將返回未定義。
有了這個,他們應該工作
data.forEach(item => {
for(const key in item) {
if(Array.isArray(item[key])) {
delete item[key]
}
}
})
以下是輸入和輸出的代碼:
輸入:
const data = [
{
"ID": 123,
"ItemName": "Item1",
"CommentList": [
{
"CommentID": "ABC",
"CommentText": "Test entry"
}
],
"ExtraList": [
"A123B"
]
},
{
"ID": 124,
"ItemName": "Item1",
"CommentList": [
{
"CommentID": "ABC",
"CommentText": "Test entry"
}
],
"ExtraList": [
"A123B"
]
}
]
輸出:
[
{ID: 123, ItemName: "Item1"},
{ID: 124, ItemName: "Item1"}
]
希望這有幫助!

TA貢獻1824條經驗 獲得超5個贊
試試這個
const a = {
"ID": 123,
"ItemName": "Item1",
"CommentList": [
{
"CommentID": "ABC",
"CommentText": "Test entry"
}
],
"ExtraList": [
"A123B"
]
}
const obj = {};
Object.keys(a)
.filter(key => !(a[key] instanceof Array))
.forEach(key => obj[key] = a[key]);
console.log(obj);

TA貢獻1876條經驗 獲得超5個贊
arr是一個對象,你可以得到一個鍵數組,然后過濾它。Object.keys(obj)
let obj = {
"ID": 123,
"ItemName": "Item1",
"CommentList": [{
"CommentID": "ABC",
"CommentText": "Test entry"
}],
"ExtraList": [
"A123B"
]
}
let test = Object.keys(obj).filter((key) => {
return !Array.isArray(obj[key])
})
console.log(test)

TA貢獻1993條經驗 獲得超6個贊
你可以這樣做,最簡單的方法來做到這一點
const data = [
{
"ID": 123,
"ItemName": "Item1",
"CommentList": [
{
"CommentID": "ABC",
"CommentText": "Test entry"
}
],
"ExtraList": [
"A123B"
]
},
{
"ID": 124,
"ItemName": "Item2",
"CommentList": [
{
"CommentID": "CDE",
"CommentText": "Test entry 2"
}
],
"ExtraList": [
"A123BC"
]
}
]
let finalOutput=JSON.parse(JSON.stringify(data,['ID','ItemName']))
console.log(finalOutput)
添加回答
舉報