我有這樣的物件:`
let data = {
approval: [
{
name: 'XXXX',
kode: '10'
},
{
name: 'YYYY',
kode: '12'
},
{
name: 'ZZZZ',
kode: '14'
},
{
name: 'HHHH',
kode: '09'
}
],
batas: "10"
}
` 我想顯示等于這個條件的資料(kode >= 10),所以如果 'kode' 小于 'batas' 它不應該出現,有什么幫助嗎?
所以在那種情況下,輸出應該是這樣的`
approval: [
{
name: 'XXXX',
kode: '10'
},
{
name: 'YYYY',
kode: '12'
},
{
name: 'ZZZZ',
kode: '14'
}
]
`資料來自ajax,感謝您的幫助..
uj5u.com熱心網友回復:
這些是做你想做的許多方法中的一些:
let data = {
approval: [
{
name: 'XXXX',
kode: '10'
},
{
name: 'YYYY',
kode: '12'
},
{
name: 'ZZZZ',
kode: '14'
},
{
name: 'HHHH',
kode: '09'
}
],
batas: "10"
}
// solution 1 > use for loop:
const results_1 = [];
for (let i=0; i<data.approval.length; i ) {
if (data.approval[i].kode >= data.batas) results_1.push(data.approval[i]);
}
console.log(results_1);
// solution 2 > use for...of loop:
const results_2 = [];
for (const obj of data.approval) {
if (obj.kode >= data.batas) results_2.push(obj);
}
console.log(results_2);
// solution 3 > use filter method:
const results_3 = data.approval.filter(obj => obj.kode >= data.batas);
console.log(results_3);
uj5u.com熱心網友回復:
我制作了 es6 javascript 代碼。
首先,我首先將批準陣列和batas放入變數中。
然后我使用for回圈迭代查找小于10的資料,然后我使用splice將其洗掉。
我最后一次回傳它是一個物件
這是我的代碼:
const batas = (data) => {
let arr = data.approval
let batas = data.batas
for (let i = 0; i < arr.length; i ) {
if (arr[i]['kode'] < batas) arr.splice(i, 1)
}
return data
}
let data = {
approval: [
{
name: 'XXXX',
kode: '10'
},
{
name: 'YYYY',
kode: '12'
},
{
name: 'ZZZZ',
kode: '14'
},
{
name: 'HHHH',
kode: '09'
}
],
batas: '10'
}
console.log(batas(data))
uj5u.com熱心網友回復:
使用filter方法可以做到這一點,更多資訊檢查:MDN - 過濾器。
let data = {
approval: [
{
name: 'XXXX',
kode: '10'
},
{
name: 'YYYY',
kode: '12'
},
{
name: 'ZZZZ',
kode: '14'
},
{
name: 'HHHH',
kode: '09'
}
],
batas: "10"
}
const filteredData = {approval: data.approval.filter(item => item.kode >= data.batas)}
console.log('filteredData: ', filteredData)
uj5u.com熱心網友回復:
使用Array#filter方法如下:
const
data = { approval: [ { name: 'XXXX', kode: '10' }, { name: 'YYYY', kode: '12' }, { name: 'ZZZZ', kode: '14' }, { name: 'HHHH', kode: '09' } ], batas: "10" },
output = [ data ]
.map(
({approval,batas}) =>
({approval:approval.filter(
({kode}) => kode >= batas
)})
)[0];
console.log( output );
然而, ....
如果您只需要過濾的陣列,那么這種方法就足夠了:
const
data = { approval: [ { name: 'XXXX', kode: '10' }, { name: 'YYYY', kode: '12' }, { name: 'ZZZZ', kode: '14' }, { name: 'HHHH', kode: '09' } ], batas: "10" },
output = data.approval
.filter(
({kode}) => kode >= data.batas
);
console.log( output );
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/530785.html
上一篇:僅從PHP關聯陣列中獲取特定值
