Удаление первого и последнего элемента из двойного вложенного массива, если пусто = true - PullRequest
0 голосов
/ 09 апреля 2020

Я работаю с prism-react-renderer, и он выделяет мою строку шаблона, которую я отображаю в JSX внутри MDX. Это приводит к появлению пробелов при использовании из-за расстояния:

<Code>
{`
function test() {
    return "Test";
};
`}
</Code>

Это приводит к тому, что prism-react-renderer создает пустую первую и последнюю строку. Я хочу удалить эти первую и последнюю строки, если они пусты. Массив, с которым я работаю, имеет следующий тип:

type TokenArray = {
  types: string[];
  content: string;
  empty?: boolean;
}[][];

Внешний массив содержит массивы, которые представляют строки. Эти внутренние массивы содержат объект со свойством empty. Я хочу удалить первый или последний элемент из внешнего массива tokenArray, если для строки установлено пустое свойство true.

Что я пробовал

Посмотрите на первый элемент внешнего массива с помощью tokenArray[0] и получите его единственный элемент (как?) И проверьте, является ли этот объект имеет свойство с именем empty со значением true. Если это так, позвоните tokenArray.shift() То же самое можно сделать для последнего элемента, но я не знаю, как получить к нему доступ с помощью tokenArray[?].

Пожалуйста, помогите мне.

1 Ответ

1 голос
/ 09 апреля 2020

Если вы хотите первый элемент в 2d массиве, тогда используйте like array [0] [0]. (Как мы получаем доступ к массиву [строка] [столбец])

Для последнего элемента это будет

массив [последний ряд] [последний столбец]
last_row = массив [массив .length - 1]
последний элемент в последнем ряду = array [array.length - 1] [last_row.length - 1]

Вот ссылка для машинописной площадки

type TokenArray = {
  types: string[];
  content: string;
  empty?: boolean;
}[][];

const tokens: TokenArray = [
    [{ types: ['a', 'b'], content: 'abc', empty: true },
        { types: ['c', 'd'], content: 'cde', empty: false }],
    [{ types: ['p', 'q'], content: 'pqr', empty: true },
        { types: ['x', 'y'], content: 'xyz', empty: false }],
];

const first = tokens[0][0];
const last = tokens[tokens.length - 1][tokens[tokens.length - 1].length - 1];
console.log('first', first, "Is Empty true?: ", first.empty === true);
console.log('last', last, "Is Empty true?: ", last.empty === true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...