使用 JavaScript 将键值对推送到数组中
本文讨论如何使用 JavaScript 将键值对推送到数组中。我们可以使用带有 map()
和 reduce()
方法的 jQuery 和箭头函数。
该目标也可以在不使用任何内置方法的情况下实现(本文稍后讨论)。
让我们从不使用内置方法和函数开始。在下面的代码中,我们有一个名为 arr1
的数组,其中包含两个元素 left
和 top
。
我们分别声明另一个数组和一个名为 arr2
和 obj
的对象。
编写一个 for
循环,直到 arr1.length-1
执行。在每次迭代中,我们使用括号符号为 obj
创建键值对。
完成后,我们使用 push()
方法将 obj
插入 arr2
并在控制台上打印。
JavaScript 代码:
var arr1 = ['left', 'top'], arr2 = [];
var obj = {};
for (i = 0; i < arr1.length; i++) {
obj[arr1[i]] = 0;
}
arr2.push(obj);
console.log(arr2);
输出:
[{
left: 0,
top: 0
}]
现在,让我们转向将键值对推送到 arr2
的内置函数和方法。
ECMAScript6 (ES6) 引入了箭头函数,让我们可以更简洁地编写函数。如果函数只有一个语句,我们只能使用这个函数。
map()
方法通过为每个数组的元素调用一次函数来创建一个新数组。它不会修改原始数组并针对空元素运行。
JavaScript 代码:
var arr1 = ['left', 'top'];
const arr2 = arr1.map(value => ({[value]: 0}));
console.log(arr2);
输出:
[{
left: 0
}, {
top: 0
}]
你可能已经观察到我们可以添加两个具有相同数据的对象。在上述输出中,每个对象都有一个属性。
reducer 函数由 reduce()
方法执行。它只返回一个值,即函数的累积答案。
与 map()
方法一样,reduce()
方法不会更新原始数组并为数组的空元素运行函数。
JavaScript 代码:
var arr1 = ['left', 'top'];
const arr2 = arr1.reduce((obj, arrValue) => (obj[arrValue] = 0, obj), {});
console.log(arr2);
输出:
{
left: 0,
top: 0
}
假设你想要在 arr2
数组中具有两个属性(left
、top
)的一个对象的键值对。让我们使用 jQuery 来实现。
示例代码:
var arr1 = ['left','top'], arr2 = [];
var obj = {};
$.each(arr1,function(index, value){
obj[value] = 0;
});
arr2.push(obj);
console.log(arr2);
输出:
[{
left: 0,
top: 0
}]
如果我们有两个名为 keys
和 values
的数组会怎样。我们想从 keys
和 values
中获取所有元素并将它们推送到第三个数组中。
请参阅以下示例。
var keys = ['ID','FirstName', 'LastName', 'Gender'],
values = [1, 'Mehvish', 'Ashiq', 'Female'],
arr = [];
var obj = {};
for(i = 0 ; i < keys.length && i < values.length ; i++){
obj[keys[i]] = values[i];
}
arr.push(obj);
console.log(arr);
输出:
[{
FirstName: "Mehvish",
Gender: "Female",
ID: 1,
LastName: "Ashiq"
}]
相关文章
Do you understand JavaScript closures?
发布时间:2025/02/21 浏览次数:108 分类:JavaScript
-
The function of a closure can be inferred from its name, suggesting that it is related to the concept of scope. A closure itself is a core concept in JavaScript, and being a core concept, it is naturally also a difficult one.
Do you know about the hidden traps in variables in JavaScript?
发布时间:2025/02/21 浏览次数:178 分类:JavaScript
-
Whether you're just starting to learn JavaScript or have been using it for a long time, I believe you'll encounter some traps related to JavaScript variable scope. The goal is to identify these traps before you fall into them, in order to av
How much do you know about the Prototype Chain?
发布时间:2025/02/21 浏览次数:150 分类:JavaScript
-
The prototype chain can be considered one of the core features of JavaScript, and certainly one of its more challenging aspects. If you've learned other object-oriented programming languages, you may find it somewhat confusing when you start
用 jQuery 检查复选框是否被选中
发布时间:2024/03/24 浏览次数:102 分类:JavaScript
-
在本教程中学习 jQuery 检查复选框是否被选中的所有很酷的方法。我们展示了使用直接 DOM 操作、提取 JavaScript 属性的 jQuery 方法以及使用 jQuery 选择器的不同方法。你还将找到许多有用的
jQuery 中的 Window.onload 与 $(document).ready
发布时间:2024/03/24 浏览次数:180 分类:JavaScript
-
本教程演示了如何在 jQuery 中使用 Window.onload 和 $(document).ready 事件。