js将数组转成键值对的json数据
时间: 2023-08-09 20:06:07 浏览: 68
可以使用 JavaScript 中的 `reduce` 方法将数组转换为键值对的 JSON 数据。
例如,假设我们有一个包含多个对象的数组,每个对象包含一个 `key` 和一个 `value` 属性,我们可以使用以下代码将其转换为键值对的 JSON 数据:
```javascript
const arr = [
{ key: "name", value: "张三" },
{ key: "age", value: 18 },
{ key: "gender", value: "男" },
];
const result = arr.reduce((acc, cur) => {
acc[cur.key] = cur.value;
return acc;
}, {});
const json = JSON.stringify(result);
console.log(json);
```
输出结果为:
```json
{"name":"张三","age":18,"gender":"男"}
```
在上面的代码中,我们使用 `reduce` 方法遍历数组,将每个对象的 `key` 和 `value` 属性添加到累加器对象 `acc` 中,并最终返回 `acc`。初始值为一个空对象 `{}`。最后,我们使用 `JSON.stringify()` 方法将结果转换为 JSON 字符串。
相关问题
js将数组转成键值对的json数据,这里的键可以自定义
如果要自定义键名,只需要在 `reduce` 方法中将键名替换为需要的值即可。例如:
```javascript
const arr = [
{ name: "张三", age: 18 },
{ name: "李四", age: 20 },
{ name: "王五", age: 22 },
];
const result = arr.reduce((acc, cur, index) => {
const key = `user${index + 1}`;
acc[key] = cur;
return acc;
}, {});
const json = JSON.stringify(result);
console.log(json);
```
输出结果为:
```json
{
"user1": { "name": "张三", "age": 18 },
"user2": { "name": "李四", "age": 20 },
"user3": { "name": "王五", "age": 22 }
}
```
在上面的代码中,我们使用 `reduce` 方法遍历数组,将每个对象作为值添加到累加器对象 `acc` 中,并使用计算得到的键名作为对象的键。键名的计算方式为 `user${index + 1}`,其中 `index` 表示当前对象在数组中的索引,`${index + 1}` 表示将索引从 0 开始转换为从 1 开始的序号。最后,我们使用 `JSON.stringify()` 方法将结果转换为 JSON 字符串。
js 判断数组对象键值相同
可以通过以下方式判断数组对象中的键值是否相同:
```javascript
function checkArrayObjectsEquality(arr) {
for (var i = 1; i < arr.length; i++) {
if (JSON.stringify(arr[i]) !== JSON.stringify(arr[0])) {
return false;
}
}
return true;
}
```
这个函数会接收一个数组作为参数,然后比较数组中的所有对象是否拥有相同的键和值。它会遍历数组并使用 `JSON.stringify()` 方法将每个对象转换为字符串,然后比较字符串是否相等。
示例:
```javascript
var arr1 = [
{ name: 'apple', color: 'red' },
{ name: 'banana', color: 'yellow' },
{ name: 'orange', color: 'orange' }
];
var arr2 = [
{ name: 'apple', color: 'red' },
{ name: 'banana', color: 'yellow' },
{ name: 'orange', color: 'orange' }
];
var arr3 = [
{ name: 'apple', color: 'red' },
{ name: 'banana', color: 'yellow' },
{ name: 'orange', color: 'green' }
];
console.log(checkArrayObjectsEquality(arr1)); // true
console.log(checkArrayObjectsEquality(arr2)); // true
console.log(checkArrayObjectsEquality(arr3)); // false
```