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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何匹配對(duì)象的多個(gè)屬性

如何匹配對(duì)象的多個(gè)屬性

皈依舞 2022-10-13 19:28:04
我可以很容易地匹配一個(gè)屬性var peoples = [  { "name": "bob", "dinner": "pizza" },  { "name": "john", "dinner": "sushi" },  { "name": "larry", "dinner": "hummus" },  { "name": "john", "dinner": "pie" }];$.each(peoples, function(i, val) {    $.each(val, function(key, name) {        if (name === "john")            console.log(key + " : " + name);       });});但是由于有 2 個(gè) john,我如何匹配一個(gè)特定的(例如,喜歡壽司的 john)然后返回整個(gè)匹配的對(duì)象(在 json 中)?我嘗試在 if 語(yǔ)句中添加另一個(gè)條件,但這似乎不起作用。謝謝
查看完整描述

5 回答

?
qq_遁去的一_1

TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊

你可以find用來(lái)檢查完全匹配



var peoples = [

  { "name": "bob", "dinner": "pizza" },

  { "name": "john", "dinner": "sushi" },

  { "name": "larry", "dinner": "hummus" },

  { "name": "john", "dinner": "pie" }

];


var filteredResult = peoples.find(val => val.name ==="john" && val.dinner==="sushi");

console.log(filteredResult)


查看完整回答
反對(duì) 回復(fù) 2022-10-13
?
波斯汪

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊

_.按 lodash 過濾

您可以通過 lodash 使用過濾器方法迭代集合的元素,返回所有元素的數(shù)組謂詞返回truthy for。謂詞使用三個(gè)參數(shù)調(diào)用:(值,索引|鍵,集合)。它返回一個(gè)新數(shù)組

https://lodash.com/docs/4.17.15#filter

lodash 上的過濾器使用示例

var users = [{

    'user': 'barney',

    'age': 36,

    'active': true

  },

  {

    'user': 'fred',

    'age': 40,

    'active': false

  },

  {

    'user': 'fred',

    'age': 39,

    'active': true

  }

];


console.log("matches:", _.filter(users, function(o) {

  return !o.active;

}));

// => [{ active: true, age: 36, user: "barney"}]


// The `_.matches` iteratee shorthand.

console.log("_.matches` iteratee", _.filter(users, {

  'user': 'fred',

  'active': true

}));

// => [{ active: true, age: 39, user: "fred"}]


// The `_.matchesProperty` iteratee shorthand.

console.log("matchs poperty", _.filter(users, ['active', false]));

// => objects for ['fred']


// The `_.property` iteratee shorthand.

_.filter(users, 'active');

// => objects for ['barney']

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>


_.where by underscore.js

你還可以使用underscore.js 的where方法查看列表中的每個(gè)值,返回一個(gè)包含與屬性中列出的鍵值對(duì)匹配的所有值的數(shù)組。 _.where(list, properties)


_.where 用法示例 _.where(listOfPlays, {author: "Shakespeare", year: 1611});


您基本上可以在普通的 javascript 中使用過濾器方法

var peoples = [

  { "name": "bob", "dinner": "pizza" },

  { "name": "john", "dinner": "sushi" },

  { "name": "john", "dinner": "sushi" },

  { "name": "larry", "dinner": "hummus" },

  { "name": "john", "dinner": "pie" }

];


var dinner = peoples.filter(e=>e.name ==="john" && e.dinner==="sushi");


console.log(dinner)


您也可以使用 jquery grep

var peoples = [

  { "name": "bob", "dinner": "pizza" },

  { "name": "john", "dinner": "sushi" },

  { "name": "john", "dinner": "sushi" },

  { "name": "larry", "dinner": "hummus" },

  { "name": "john", "dinner": "pie" }

];


var dinner = $.grep(peoples, function(people) {

    return people.name === "john" && people.dinner === "sushi";

});


console.log(dinner)

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


查找 vs 過濾器

var peoples = [

  { "name": "bob", "dinner": "pizza" },

  { "name": "john", "dinner": "sushi" },

  { "name": "john", "dinner": "sushi" },

  { "name": "larry", "dinner": "hummus" },

  { "name": "john", "dinner": "pie" }

];


var filterDinner = peoples.filter(e=>e.name ==="john" && e.dinner==="sushi");


// return all matching results

console.log('filter dinner -:', filterDinner);


var findDinner = peoples.find(e=>e.name ==="john" && e.dinner==="sushi");


//returns the first matching rslt

console.log('find dinner -:', findDinner);


不推薦使用 Find,因?yàn)樗祷氐谝粋€(gè)匹配結(jié)果,并且假設(shè)我們有更多匹配結(jié)果,它們會(huì)被遺漏。


查看完整回答
反對(duì) 回復(fù) 2022-10-13
?
元芳怎么了

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超7個(gè)贊

考慮以下。


var peoples = [{

    "name": "bob",

    "dinner": "pizza"

  },

  {

    "name": "john",

    "dinner": "sushi"

  },

  {

    "name": "larry",

    "dinner": "hummus"

  },

  {

    "name": "john",

    "dinner": "pie"

  }

];


$.each(peoples, function(i, val) {

  if (val.name == "john" && val.dinner == "sushi") {

    console.log("Persons[" + i + "]." + Object.keys(val)[0] + ": " + val.name);

  }

});

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


這會(huì)迭代所有項(xiàng)目并比較每個(gè)項(xiàng)目的元素。



查看完整回答
反對(duì) 回復(fù) 2022-10-13
?
qq_花開花謝_0

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊

我不知道上下文,但可能有兩個(gè) john 并且都將晚餐屬性設(shè)置為 pie。我建議對(duì)數(shù)組中的每個(gè)條目使用 id 。如果您正在使用的數(shù)組是您列出的數(shù)組,您可以map在執(zhí)行搜索之前使用它進(jìn)行投影/轉(zhuǎn)換。例如


const people = [

  { name: "bob", dinner: "pizza" },

  { name: "john", dinner: "sushi" },

  { name: "larry", dinner: "hummus" },

  { name: "john", dinner: "pie" },

];


const peopleList = people.map((person, id) => ({ id, ...person }));


console.log(peopleList);


// You could start from here to search by id


查看完整回答
反對(duì) 回復(fù) 2022-10-13
?
紫衣仙女

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊

您可以設(shè)置一個(gè)函數(shù)來(lái)定義您的搜索詞,然后使用Array.filter:


const peoples = [

  { "name": "bob", "dinner": "pizza" },

  { "name": "john", "dinner": "sushi" },

  { "name": "larry", "dinner": "hummus" },

  { "name": "john", "dinner": "pie" }

];


searchTerms = (person) => {

  return person.name === "john" && person.dinner === "sushi";

}


console.log(peoples.filter(searchTerms));


// [{ "name": "john", "dinner": "sushi" }]


查看完整回答
反對(duì) 回復(fù) 2022-10-13
  • 5 回答
  • 0 關(guān)注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)