原始的馬西夫
a = [
{
"first_name": "Andrew",
"last_name": " ",
"job": "actor",
},
{
"first_name": "Andrew",
"last_name": "Petrov",
"job": "",
"contry": "Russia"
},
{
"first_name": "Andrew",
"last_name": "Petrov",
"contry": "Russia"
},
]
告訴我,我怎樣才能從這個物件陣列中獲取一個物件的下一個陣列?我想得到什么
[
{
"first_name": "Andrew",
"last_name": "Petrov",
"job": "actor",
"contry": "Russia"
}
]
uj5u.com熱心網友回復:
像 [1] 一樣簡單
[n] 是陣列的索引。索引從 0 開始
如果您想在陣列中獲取陣列中的物件,則 a[1][0]
uj5u.com熱心網友回復:
我認為這應該讓你得到你想要的結果。基本上我正在做的是使用 array.reduce 方法迭代輸入陣列中的所有物件并添加結果物件中缺少的屬性。
let a = [
{
"first_name": "Andrew",
"last_name": " ",
"job": "actor",
},
{
"first_name": "Andrew",
"last_name": "Petrov",
"job": "",
"contry": "Russia"
},
{
"first_name": "Andrew",
"last_name": "Petrov",
"contry": "Russia"
},
]
let result = a.reduce((prevValue, currentValue) => {for (let prop in currentValue) {
if (currentValue[prop].trim() && !prevValue[prop]) {
prevValue[prop] = currentValue[prop];
}
}
return prevValue;
}, {});
console.log(result);
uj5u.com熱心網友回復:
在陣列中,您可以n th通過向其提供index編號來獲取該專案。
例如:
a = [10, 11, 12]
如果你想10從這個陣列中獲取 ,你可以這樣做console.log(a[0]),這將10在你的控制臺中記錄。在這里a[0]0 是索引。
與您的條件相同:如果您想從陣列中獲取物件,則需要傳遞該特定物件的索引號。
在您的情況下,a[0]將回傳此輸出:
{
"first_name": "Andrew",
"last_name": " ",
"job": "actor",
}
現在您想要的第二種情況是,您需要從此物件創建一個新陣列。
創建陣列的方法有很多種,這里是最簡單的一種:
const myNewArray = [a[0]]
如果你用大括號包裹你的物件,它會創建一個新陣列。
根據你的情況,也有一些領域被失蹤的物件,得到的是,有許多方式可以使用,如:reducer,map,forEach loop等。
這是示例reducer:
let res = a.reduce((xs, cv) => {
for (let prop in cv) {
if (cv[prop].trim() && !xs[prop]) {
xs[prop] = cv[prop];
}
}
return xs;
}, {});
console.log("result is :", res)
uj5u.com熱心網友回復:
1)如果你先過濾掉一個物件的屬性,然后使用Object.assign得到想要的結果,你就可以很容易地得到結果
One -liner solution
a.reduce((acc, curr) => Object.assign({},acc,Object.fromEntries(Object.entries(curr).filter(([k, v]) => v.trim() !== ""))),{});
const a = [
{
first_name: "Andrew",
last_name: " ",
job: "actor",
},
{
first_name: "Andrew",
last_name: "Petrov",
job: "",
contry: "Russia",
},
{
first_name: "Andrew",
last_name: "Petrov",
contry: "Russia",
},
];
const result = a.reduce((acc, curr) => Object.assign({},acc,Object.fromEntries(Object.entries(curr).filter(([k, v]) => v.trim() !== ""))),{});
console.log(result);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/354986.html
標籤:javascript 反应
下一篇:反應在事件之外的函式中使用引數
