第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JS:像SQL一樣查詢JSON數據

JS:像SQL一樣查詢JSON數據

回首憶惘然 2023-08-18 17:14:52
我有以下 JSON 數據{  "pebble" {     "status" : "active"   },  "stone" {     "status" : "active"   },  "stone_ny" {     "status" : "active"   },  "stone_london" {     "status" : "active"   },  "stone_tokyo" {     "status" : "active"   }}在JS中,有沒有辦法獲取與stone_.*匹配的所有行并返回最后3行?
查看完整描述

5 回答

?
溫溫醬

TA貢獻1752條經驗 獲得超4個贊

只需使用一個簡單的正則表達式來匹配石鑰匙,/stone_/gi方法如下:


var names = {

    "pebble": {

        "status": "active"

    },

    "stone": {

        "status": "active"

    },

    "stone_ny": {

        "status": "active"

    },

    "stone_london": {

        "status": "active"

    },

    "stone_tokyo": {

        "status": "active"

    }

}


var matchedNames = {};


for (name in names) {

    if (/stone_/gi.test(name)) {

        matchedNames[name] = names[name];

    }

}


console.log(matchedNames);

Explanation of regex:

  • g = 全局,匹配字符串中模式的所有實例,而不僅僅是一個

  • i = 不區(qū)分大小寫(例如,/a/i 將匹配字符串“a”或“A”。


查看完整回答
反對 回復 2023-08-18
?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

JSON 數據本質上具有 SQL 無法做到的靈活性。這就是它變得如此普遍的原因。


假設您的數據位于一個名為的變量中data


var data = {

? ? "pebble": {

? ? ? ? "status": "active"

? ? },

? ? "stone": {

? ? ? ? "status": "active"

? ? },

? ? "stone_ny": {

? ? ? ? "status": "active"

? ? },

? ? "stone_london": {

? ? ? ? "status": "active"

? ? },

? ? "stone_tokyo": {

? ? ? ? "status": "active"

? ? }

}

const result = Object.keys(data)

? .filter(key => key.match(/^stone_/) // This does the filtering (the WHERE clause)

? .map(key => { return {[key]: data[key]}}) // This returns your selected rows


查看完整回答
反對 回復 2023-08-18
?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

您可以使用for...in循環(huán)遍歷所有可枚舉字符串屬性(包括繼承一次)。您可以將其與正則表達式匹配結合起來,以檢查密鑰是否滿足您的要求。

const data = {

? "pebble"? ? ? : { "status": "active" },

? "stone"? ? ? ?: { "status": "active" },

? "stone_ny"? ? : { "status": "active" },

? "stone_london": { "status": "active" },

? "stone_tokyo" : { "status": "active" },

};


const result = {};

for (const key in data) {

? if (key.match(/^stone_/)) result[key] = data[key];

}


console.log(result);

但是,如果您當前已經在使用庫,您可以檢查是否有助手存在。一個常見的名稱是pickBy()接受對象和謂詞(測試函數)。

在洛達什:

const?result?=?_.pickBy(data,?(_,?key)?=>?key.match(/^stone_/));

在拉姆達:

const?result?=?R.pickBy((_,?key)?=>?key.match(/^stone_/),?data);
//?or:?const?result?=?R.pickBy(R.flip(R.test(/^stone_/)),?data);

如果輸入是對象,某些庫也可能使用filter()并返回對象。


查看完整回答
反對 回復 2023-08-18
?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

source={

  "pebble": {

     "status" : "active"

   },

  "stone": {

     "status" : "active"

   },

  "stone_ny" {

     "status" : "active"

   },

  "stone_london": {

     "status" : "active"

   },

  "stone_tokyo": {

     "status" : "active"

   }

};


rows = [];


for(var k in source)

 if(k.substr(0,6)=="stone_")

  rows.push({[k]:source[k]});


查看完整回答
反對 回復 2023-08-18
?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

var data = {

    "pebble": {

        "status": "active"

    },

    "stone": {

        "status": "active"

    },

    "stone_ny": {

        "status": "active"

    },

    "stone_london": {

        "status": "active"

    },

    "stone_tokyo": {

        "status": "active"

    }

}


const query = Object.entries(data).reduce((acc, val)=> {

  return val[0].slice(0, 6) === 'stone_' ? {...acc,  [val[0]]: val[1]} : acc

}, {})


查看完整回答
反對 回復 2023-08-18
  • 5 回答
  • 0 關注
  • 299 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號