使用 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"
}]
相关文章
在 Angular 中上传文件
发布时间:2023/04/14 浏览次数:71 分类:Angular
-
本教程演示了如何在 Angular 中上传任何文件。我们还将介绍如何在文件上传时显示进度条,并在上传完成时显示文件上传完成消息。
Angular 中所有 Mat 图标的列表
发布时间:2023/04/14 浏览次数:91 分类:Angular
-
本教程演示了在哪里可以找到 Angular 中所有 Mat 图标的列表以及如何使用它们。
Angular 2 中的复选框双向数据绑定
发布时间:2023/04/14 浏览次数:139 分类:Angular
-
本教程演示了如何一键标记两个复选框。这篇有 Angular 的文章将着眼于执行复选框双向数据绑定的不同方法。
在 AngularJS 中重新加载页面
发布时间:2023/04/14 浏览次数:142 分类:Angular
-
我们可以借助 windows.location.reload 和 reload 方法在 AngularJS 中重新加载页面。
在 AngularJs 中设置 Select From Typescript 的默认选项值
发布时间:2023/04/14 浏览次数:78 分类:Angular
-
本教程提供了在 AngularJs 中从 TypeScript 中设置 HTML 标记选择的默认选项的解释性解决方案。
在 AngularJS 中启用 HTML5 模式
发布时间:2023/04/14 浏览次数:150 分类:Angular
-
本文讨论如何在 AngularJS 应用程序上启用带有深度链接的 HTML5 模式。
在 AngularJs 中加载 spinner
发布时间:2023/04/14 浏览次数:107 分类:Angular
-
我们将介绍如何在请求加载时添加加载 spinner,并在 AngularJs 中加载数据时停止加载器。
在 Angular 中显示和隐藏
发布时间:2023/04/14 浏览次数:78 分类:Angular
-
本教程演示了 Angular 中的显示和隐藏。在开发商业应用程序时,我们需要根据用户角色或条件隐藏一些数据。我们必须根据该应用程序中的条件显示相同的数据。
在 Angular 中下载文件
发布时间:2023/04/14 浏览次数:104 分类:Angular
-
本教程演示了如何在 angular 中下载文件。我们将介绍如何通过单击按钮在 Angular 中下载文件并显示一个示例。