Есть ли лучший способ получить конкретные значения из объекта JSON?

Кажется, вам требуется максимальное число заполненных строк из любого столбца, упомянутого в качестве основных критериев в вашей формуле (ей).

Кроме того, если lr равно 99, то "F2:I2" & lr становится F2:I299.

Одноразовые вары редко бывают целесообразными или эффективными, если они не улучшают четкость кода. arr не сделал ничего из этого, но я бы сказал, что ty оправдано последним.

Sub test1()

    Dim lr As Long, ty  AS VARIANT

    with workSheets("Detail")

        lr = application.max(.cells(.rows.count, "H").end(xlup).row, _
                             .cells(.rows.count, "P").end(xlup).row, _
                             .cells(.rows.count, "AR").end(xlup).row, _
                             .cells(.rows.count, "BR").end(xlup).row)

        .Range("F:I").NumberFormat = "General"

        .Range("F1:I1").Value = Array("MFR", "CUSTLINE#", "PRICE (DYP)", "DELIVERY")

        ty = Array("=IF(H2=""NB"", text(,), AY2)", "=A2", "=IF(P2= text(,), ""NB"", P2)", _
                   "=IF(BR2>(D2+AM2), ""STOCK"", " & _
                   "IF(AR2=""0 Weeks"", text(,), SUBSTITUTE(AR2, "" Weeks"", "" WKS"")))")

         .Range("F2:I" & lr).Formula = ty

    end with

End Sub
2
задан Jack Bashford 19 January 2019 в 19:11
поделиться

2 ответа

Если вам не нравится использовать allCast[1], вы можете просто сделать cast.cast и избавиться от allCast:

this.movieService.getCast(id).subscribe(cast => {
  this.cast = cast;
  console.log(cast);
  this.cast = cast.cast.map(el => el.name).slice(0, 4);
  console.log(this.cast);
  });
});
0
ответ дан Jack Bashford 19 January 2019 в 19:11
поделиться

На самом деле, если вам нужны только первые 4 names, вы можете сначала slice массив, а затем map над массивом 4 длины (это улучшит производительность, так как вы не будете отображать весь оригинал массив). Кроме того, свойство cast может быть принято directclty без необходимости Object.values(). Итак, ваш код может быть уменьшен до этого:

this.movieService.getCast(id).subscribe(cast =>
{
    console.log(cast);
    this.cast = cast.cast.slice(0, 4).map(el => el.name);
    console.log(this.cast);
});
0
ответ дан Shidersz 19 January 2019 в 19:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: