Как узнать `размер`, где` обхват` равен 3,5 - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь выяснить size, где girth равно 3,5

let arr = [
  { size:4, girth:3},{size:5,girth:3.5},{size:6,girth:4}
]
let size = arr.filter(arr => { return arr.girth === 3.5} )

[ { size: 5, girth: 3.5 } ].Я пытаюсь получить только размер

Ответы [ 7 ]

2 голосов
/ 02 апреля 2019

Используйте .find вместо .filter:

let arr = [
  { size:4, girth:3},{size:5,girth:3.5},{size:6,girth:4}
]

const found = arr.find(({ girth }) => girth === 3.5);
if (found) {
  console.log(found.size);
}

(Если вы уверены, что предмет будет найден, вы можете пропустить тест if)

0 голосов
/ 02 апреля 2019

, если есть более одной записи с обхватом: 3,5

let arr = [{ size:4, girth:3}, {size:5, girth:3.5}, {size:6, girth:4}]
let sizes = arr.filter(v => v.girth === 3.5 ).map(v => v.size)
0 голосов
/ 02 апреля 2019

Чтобы охватить все базы, в том числе, если найдено более одного совпадения или нет совпадений, вы можете уменьшить массив элементов до массива size свойств, соответствующих вашим условиям

let arr = [
  { size:4, girth:3},{size:5,girth:3.5},{size:6,girth:4},
  {size:9001,girth:3.5} // I added this one for the example, it's over 9000
]

let thosePeskyThreePointFives = arr.reduce((found, { size, girth }) =>
    (girth === 3.5 && found.push(size), found), [])
    
console.info(thosePeskyThreePointFives)

Свойство .length сообщит вам, сколько совпадений.

0 голосов
/ 02 апреля 2019

Вы можете просто использовать forEach

let arr = [
  { size:4, girth:3},{size:5,girth:3.5},{size:6,girth:4}
]
let output;
arr.forEach(({size,girth}) =>{
  if(girth === 3.5){
    output = size
  }
} )

console.log(output)

Если вы просто хотите получить первый соответствующий размер элементов, вы можете использовать findIndex

let arr = [{ size:4, girth:3},{size:5,girth:3.5},{size:6,girth:4}]

let index = arr.findIndex(({girth})=> girth === 3.5)

if(index !== -1){
  console.log(arr[index].size)
}
0 голосов
/ 02 апреля 2019

Братан, просто используй цикл, чтобы пройти через него и проверить, какой объект имеет обхват, равный 3,5.

Это должно сработать, человек ...

0 голосов
/ 02 апреля 2019

Использование find:

const arr = [
  { size:4, girth:3},{size:5,girth:3.5},{size:6,girth:4}
]

const size = arr.find(({ girth }) => girth == 3.5).size;
console.log(size);
0 голосов
/ 02 апреля 2019

Просто используйте find

let arr = [
  { size:4, girth:3},{size:5,girth:3.5},{size:6,girth:4}
]

let size = arr.find(e => e.girth === 3.5).size;

console.log(size);

ИЛИ

let arr = [
  { size:4, girth:3},{size:5,girth:3.5},{size:6,girth:4}
];

const searchByGirth = (arr, girth) => (arr.find(e => e.girth === girth)||{size: 0}).size;

console.log(searchByGirth(arr, 3.5));
console.log(searchByGirth(arr, 9));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...