javascript - 从 javascript 对象中省略索引
问题描述
我正在通过更改一些内容来修改 javascript 对象。当我重新创建它时,我得到每个密钥对的索引号。
"0":{...},"1":{...},
如何删除/省略这些 0、1、2、3、4 数字的创建?这样输出看起来就是:
{...},{...},
var overlappedRanges = [{
start: '11/19/2019',
end: '11/20/2019'
}, {
start: '11/01/2019',
end: '11/18/2019'
}, {
start: '11/14/2019',
end: '11/19/2019'
}, {
start: '11/17/2019',
end: '11/21/2019'
}, {
start: '11/12/2019',
end: '11/23/2019'
}, {
start: '11/18/2019',
end: '11/24/2019'
}];
var final = {};
for (var key in overlappedRanges){
final[key] = {"startmod" : overlappedRanges[key]["start"],
"endmod" : overlappedRanges[key]["end"]};
}
console.log(JSON.stringify(final));
$('#overlapped').text(JSON.stringify(final));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id="overlapped" style="color: red;"></span>
<br>
<span id="notOverlapped" style="color: green;"></span>
解决方案
让外部结构是一个数组而不是一个对象:
var overlappedRanges = [{
start: '11/19/2019',
end: '11/20/2019'
}, {
start: '11/01/2019',
end: '11/18/2019'
}, {
start: '11/14/2019',
end: '11/19/2019'
}, {
start: '11/17/2019',
end: '11/21/2019'
}, {
start: '11/12/2019',
end: '11/23/2019'
}, {
start: '11/18/2019',
end: '11/24/2019'
}];
const final = overlappedRanges.map(({ start, end }) => ({
startmod: start,
endmod: end
}));
console.log(JSON.stringify(final));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id="overlapped" style="color: red;"></span>
<br>
<span id="notOverlapped" style="color: green;"></span>
(另外,用于.map
将一个数组转换为另一个)
推荐阅读
- ios - 在 React Native 中访问 Apple 的 Memoji 键盘
- c++ - 将模板的模板成员类型作为模板模板参数传递
- powershell - Powershell通用集合列表不显示多个对象
- go - 嵌套切片未更新
- mapbox - 如何从弹出的地图框中删除“x”(关闭)符号
- r - 如何将带有属性的 XML 转换为 R 中的数据框?
- python - arr[:,[1,0,2] 在代码片段中是什么意思?
- firebase-cloud-messaging - 我需要帮助访问 Firebase 中的 admin.messaging()
- mysql - SQL多并获取不同连接表的总和
- javascript - 通过 AJAX 访问从 Django Rest Framework 返回的数组中的项目时获取“未定义”