1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-01-10 18:48:13 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
leetcode-problemset/leetcode-cn/problem (Chinese)/将对象数组转换为矩阵 [array-of-objects-to-matrix].html
2023-05-15 17:43:00 +08:00

128 lines
3.1 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<p>编写一个函数,将对象数组&nbsp;<code>arr</code>&nbsp;转换为矩阵&nbsp;<code>m</code>&nbsp;</p>
<p><code>arr</code>&nbsp;是一个由对象组成的数组或一个数组。数组中的每个项都可以包含深层嵌套的子数组和子对象。它还可以包含数字、字符串、布尔值和空值。</p>
<p>矩阵&nbsp;<code>m</code>&nbsp;的第一行应该是列名。如果没有嵌套,列名是对象中的唯一键。如果存在嵌套,列名是对象中相应路径,以点号&nbsp;<code>"."</code>&nbsp;分隔。</p>
<p>剩余的每一行对应&nbsp;<code>arr</code>&nbsp;中的一个对象。矩阵中的每个值对应对象中的一个值。如果给定对象在给定列中没有值,则应该包含空字符串 <code>""</code></p>
<p>矩阵中的列应按 <strong>字典升序</strong> 排列。</p>
<p>&nbsp;</p>
<p><strong class="example">示例 1</strong></p>
<pre>
<b>输入:</b>
arr = [
&nbsp; {"b": 1, "a": 2},
&nbsp; {"b": 3, "a": 4}
]
<b>输出:</b>
[
&nbsp; ["a", "b"],
&nbsp; [2, 1],
&nbsp; [4, 3]
]
<strong>解释:</strong>
两个对象中有两个唯一的列名:"a"和"b"。
"a"对应[2, 4]。
"b"对应[1, 3]。
</pre>
<p><strong class="example">示例 2</strong></p>
<pre>
<b>输入:</b>
arr = [
&nbsp; {"a": 1, "b": 2},
&nbsp; {"c": 3, "d": 4},
&nbsp; {}
]
<b>输出:</b>
[
&nbsp; ["a", "b", "c", "d"],
&nbsp; [1, 2, "", ""],
&nbsp; ["", "", 3, 4],
&nbsp; ["", "", "", ""]
]
<strong>解释:</strong>
有四个唯一的列名:"a"、"b"、"c"、"d"。
第一个对象具有与"a"和"b"关联的值。
第二个对象具有与"c"和"d"关联的值。
第三个对象没有键,因此只是一行空字符串。
</pre>
<p><strong class="example">示例 3</strong></p>
<pre>
<b>输入:</b>
arr = [
&nbsp; {"a": {"b": 1, "c": 2}},
&nbsp; {"a": {"b": 3, "d": 4}}
]
<b>输出:</b>
[
&nbsp; ["a.b", "a.c", "a.d"],
&nbsp; [1, 2, ""],
&nbsp; [3, "", 4]
]
<b>解释:</b>
在这个例子中,对象是嵌套的。键表示每个值的完整路径,路径之间用句点分隔。
有三个路径:"a.b"、"a.c"、"a.d"。
</pre>
<p><strong class="example">示例 4</strong></p>
<pre>
<b>输入:</b>
arr = [
&nbsp; [{"a": null}],
&nbsp; [{"b": true}],
&nbsp; [{"c": "x"}]
]
<strong>输出:</strong>
[
&nbsp; ["0.a", "0.b", "0.c"],
&nbsp; [null, "", ""],
&nbsp; ["", true, ""],
&nbsp; ["", "", "x"]
]
<strong>解释:</strong>
数组也被视为具有索引为键的对象。
每个数组只有一个元素,所以键是"0.a"、"0.b"和"0.c"。
</pre>
<p><strong class="example">示例 5</strong></p>
<pre>
<b>输入:</b>
arr = [
{},
&nbsp; {},
&nbsp; {},
]
<b>输出:</b>
[
&nbsp; [],
&nbsp; [],
&nbsp; [],
&nbsp; []
]
<strong>解释:</strong>
没有键,所以每一行都是一个空数组。</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= arr.length &lt;= 1000</code></li>
<li><code>unique keys &lt;= 1000</code></li>
</ul>