js陣列Array根據動態條件過濾

2022-02-10 01:18:19 字數 2768 閱讀 6879

資料

[, , , ]
需求:需要根據動態的條件來對資料進行查詢。

步驟1:定義過濾器並初始化,比如我們要查詢王五以6分開頭的資料,條件定義:`姓名 equal 王五 && 成績 beginwith 6`

//

/ 過濾器集合,格式:

/// field - 用於過濾的屬性(字段)

/// relationtype - 關聯關係(比較方式),可選值有equal(等於)、notequal(不等於)、like(模糊匹配)、beginwith(以它開頭)、endwith(以它結尾)

/// value - 用於被比較的過濾器值

const filters =

filters.push()

filters.push()

步驟2:定義乙個通用的過濾函式,過濾函式傳遞2個引數,第1個是需要被過濾的資料來源,第2個是過濾器集合,函式返回值是過濾後的資料來源

//

過濾資料來源

function

filteringdatasources (source, filters)

//獲取資料物件用於比較的屬性值,統一轉為字串型別,便於比較

objvalue =string(obj[item.field])

//判斷邏輯

if (item.relationtype === 'equal')

else

if (item.relationtype === 'notequal')

else

if (item.relationtype === 'like')

else

if (item.relationtype === 'beginwith')

else

if (item.relationtype === 'endwith')

//返回當前表示式是否符合條件

return

isfit

})})

//遍歷資料來源

source = source.filter((item, index) =>

}//返回當前資料物件是否符合條件,不符合條件則被過濾掉,不會出現在最終資料中

return

isfit

})//

返回過濾後的資料來源

return

source

}

步驟3:呼叫過濾函式得到結果

if (filters.length > 0)
結果:

array(1)

0: length: 1

完整**:

//

過濾資料來源

function

filteringdatasources (source, filters)

//獲取資料物件用於比較的屬性值,統一轉為字串型別,便於比較

objvalue =string(obj[item.field])

//判斷邏輯

if (item.relationtype === 'equal')

else

if (item.relationtype === 'notequal')

else

if (item.relationtype === 'like')

else

if (item.relationtype === 'beginwith')

else

if (item.relationtype === 'endwith')

//返回當前表示式是否符合條件

return

isfit

})})

//遍歷資料來源

source = source.filter((item, index) =>

}//返回當前資料物件是否符合條件,不符合條件則被過濾掉,不會出現在最終資料中

return

isfit

})//

返回過濾後的資料來源

return

source

}let source =[, , , ]

/// 過濾器集合,格式:

/// field - 用於過濾的屬性(字段)

/// relationtype - 關聯關係(比較方式),可選值有equal(等於)、notequal(不等於)、like(模糊匹配)、beginwith(以它開頭)、endwith(以它結尾)

/// value - 用於被比較的過濾器值

const filters =

filters.push()

filters.push()

source =filteringdatasources(source, filters)

console.log(source)

ps:動態條件過濾來自於工作中的乙個需求

過濾前:

過濾後:

js 清空array陣列

兩種實現方式 1.splice 刪除元素並新增新元素,直接對陣列進行修改,返回含有被刪除元素的陣列。arrayobject.splice index,howmany,element1,elementx index 必選,規定從何處新增 刪除元素。howmany 必選,規定應該刪除多少元素。未規定此引...

js 中的陣列Array

1 ecmascript 中的陣列與其他語言中的陣列有些不同,ecmascript中的陣列可以每一項都不同型別,陣列的大小可以動態調整。var colors new array var colors new array 20 var colors new array red blue green v...

Jquery 物件陣列Array根據字段排序

jquery在遍歷陣列array時,如果需要對其進行排序,會提供乙個方法 sort 但是這個只是針對string int這樣的原始型別的。如何對乙個物件陣列進行排序那?知識點 假設以物件陣列形式來儲存學生資訊。每個學生包括3個屬性 sid,sname,sage。請基於sid為該陣列排序。說明 sor...