удаление пространства между вертикальными отделениями

Если вы не хотите искать в arr1 каждый элемент из arr2 (решение O (n²)), вы можете создать объект поиска для arr1, связанный с id. Затем вы можете просто выполнить цикл arr2, объединяя найденный объект, просматривая его. Это будет более эффективно, если у вас есть большие массивы.

let arr1 = [{id: 100, quantity: 2, grp: '1A'},{id: 101, quantity: 2, grp: '2A'}]
let arr2 = [{id: 101, color: "#FFF"}, {id: 100, color: "#000"}] 

// make lookup
let lookup = arr1.reduce((lookup, item) => lookup.set(item.id, item), new Map)

// assign color to correct object
arr2.forEach(({id, ...rest}) => Object.assign(lookup.get(id), rest))
console.log(arr1)

6
задан Gripsoft 24 February 2009 в 19:07
поделиться

4 ответа

Если это работает всего кроме IE, существует ошибка IE, которая происходит, если существует пробел после тега изображения. Попробуйте это:

<div>
    <img /></div>

вместо этого:

<div>
    <img />
</div>
6
ответ дан 8 December 2019 в 03:54
поделиться

Просто установите line-height свойство Вашей вершины и нижних отделений к 0.

Пример кода:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <title>Test</title>
    <style type="text/css">
        #top {
            background-color: #f00;
            line-height: 0px;
        }
        #middle {
            background-color: #0f0;
        }
        #bottom {
            background-color: #00f;
            line-height: 0px;
        }
    </style>
</head>
<body>
    <div id="top">
        <img src="http://i.stackoverflow.com/Content/Img/stackoverflow-logo-250.png"
            alt="Stackoverflow" />
    </div>
    <div id="middle">
        <div>This is the first middle div child.</div>
        <div>This is the second middle div child.</div>
        <div>This is the third middle div child.</div>
    </div>
    <div id="bottom">
        <img src="http://www.gravatar.com/avatar/ae3e50c947379163d74b6de6fa01d509?s=32&amp;d=identicon&amp;r=PG"
            alt="Gripsoft avatar" />
    </div>
</body>

14
ответ дан 8 December 2019 в 03:54
поделиться

Изображение находится на текстовой базовой линии встроенного поля. Добавьте текст налево и право на Ваше изображение проверить это. Существует пространство ниже текстовой базовой линии для создания места для подстрочных элементов букв (‘g’, ‘y’ и т.д.), а также межстрочный интервал.

Установите стиль CSS изображения, ‘вертикальный - выравниваются’ к чему-то как 'вершина' или 'нижняя часть' (как соответствующий), чтобы заставить его выровняться к краю текстовой строки вместо базовой линии.

5
ответ дан 8 December 2019 в 03:54
поделиться

Можно дать изображение display: block. Кроме того, можно следовать изображению с <br/> или перенеситесь, это в отделении (удостоверьтесь, что нет никакого пробела). В этом случае я предпочел бы использовать display: block если Вы не должны были соединять 2 изображения по некоторым причинам.

2
ответ дан 8 December 2019 в 03:54
поделиться