返回介绍

solution / 2700-2799 / 2794.Create Object from Two Arrays / README

发布于 2024-06-17 01:02:59 字数 2252 浏览 0 评论 0 收藏 0

2794. 从两个数组中创建对象

English Version

题目描述

给定两个数组 keysArrvaluesArr,返回一个新的对象 objobj 中的每个键值对都来自 keysArr[i]valuesArr[i]

如果前面的索引中存在重复的键,则应该跳过该键值对。换句话说,只有第一次出现的键会被添加到对象中。

如果键不是字符串,则应通过调用 String() 方法将其转换为字符串。

 

示例 1:

输入:keysArr = ["a", "b", "c"], valuesArr = [1, 2, 3]
输出:{"a": 1, "b": 2, "c": 3}
解释:键 "a"、"b" 和 "c" 分别与值 1、2 和 3 配对。

示例 2:

输入:keysArr = ["1", 1, false], valuesArr = [4, 5, 6]
输出:{"1": 4, "false": 6}
解释:首先,将 arr1 中的所有元素转换为字符串。我们可以看到有两个 "1" 的出现。使用第一次出现 "1" 的关联值:4。

示例 3:

输入:keysArr = [], valuesArr = []
输出:{}
解释:没有键,因此返回一个空对象。

 

提示:

  • keysArrvaluesArr 都是有效的 JSON 数组
  • 2 <= JSON.stringify(keysArr).length, JSON.stringify(valuesArr).length <= 5 * 105
  • keysArr.length === valuesArr.length

解法

方法一

function createObject(keysArr: any[], valuesArr: any[]): Record<string, any> {
  const ans: Record<string, any> = {};
  for (let i = 0; i < keysArr.length; ++i) {
    const k = String(keysArr[i]);
    if (ans[k] === undefined) {
      ans[k] = valuesArr[i];
    }
  }
  return ans;
}
/**
 * @param {Array} keysArr
 * @param {Array} valuesArr
 * @return {Object}
 */
var createObject = function (keysArr, valuesArr) {
  const ans = {};
  for (let i = 0; i < keysArr.length; ++i) {
    const k = keysArr[i] + '';
    if (ans[k] === undefined) {
      ans[k] = valuesArr[i];
    }
  }
  return ans;
};

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文