3 回答

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
您可以使用Object.keys
將對(duì)象的所有鍵放入數(shù)組中;然后過濾以開頭的鍵item_description
并計(jì)算結(jié)果數(shù)組的長(zhǎng)度:
const input = {
? another_key: 'x',
? item_description_1: "1",
? item_description_2: "2",
? item_description_3: "3",
? something_else: 4
}
const cnt = Object.keys(input)
? .filter(v => v.startsWith('item_description'))
? .length;
console.log(cnt);
如果您的瀏覽器不支持startsWith
,您可以隨時(shí)使用正則表達(dá)式,例如
.filter(v?=>?v.match(/^item_description/))

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
const keyPrefixToCount = 'item_description_';
const count = Object.keys(input).reduce((count, key) => {
if (key.startsWith(keyPrefixToCount)) {
count++
}
return count;
}, 0)
console.log(count) // 3 for your input
您可能應(yīng)該將前綴刪除到變量中。
編輯:根據(jù) VLAZ 評(píng)論,startsWith會(huì)更準(zhǔn)確

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊
我認(rèn)為使用正則表達(dá)式也是一個(gè)不錯(cuò)的選擇,只需多兩行:
const input = {
item_descrip3: "22",
item_description_1: "1",
item_description_2: "2",
item_description_3: "3",
test22: "4"
}
const regex = /^item_description_[1-9][0-9]*$/
let result = Object.keys(input).filter(item => regex.test(item))
添加回答
舉報(bào)