Bar*_*yle 2 javascript object ecmascript-6
这很难用语言解释,所以让我向您展示我所拥有的内容并从那里开始工作。
我有以下对象:
{
1: { name: 'Initial Step 1', stepNumber: 1 },
2: { name: 'Initial Step 2', stepNumber: 2 },
3: { name: 'Initial Step 3', stepNumber: 3 },
4: { name: 'Initial Step 4', stepNumber: 4 },
}
Run Code Online (Sandbox Code Playgroud)
我想为此步骤执行删除功能,然后减少尾随键,以便得到以下结果:
{
1: { name: 'Initial Step 1', stepNumber: 1 },
2: { name: 'Initial Step 3', stepNumber: 2 },
3: { name: 'Initial Step 4', stepNumber: 3 },
};
Run Code Online (Sandbox Code Playgroud)
我只是不确定实现我的deleteStep功能的最佳方法。
我已经将其实现如下:
export const deleteStep = (stepNumber, steps) => {
// What should I do here?
return steps;
};
Run Code Online (Sandbox Code Playgroud)
谢谢!
您可以删除实际的键并检查是否存在更多键,然后创建一个新属性并删除旧的引用。
function deleteAndShift(object, key) {
delete object[key];
while (++key in object) {
object[key].stepNumber--;
object[key - 1] = object[key];
delete object[key];
}
}
var object = { 1: { name: 'Initial Step 1', stepNumber: 1 }, 2: { name: 'Initial Step 2', stepNumber: 2 }, 3: { name: 'Initial Step 3', stepNumber: 3 }, 4: { name: 'Initial Step 4', stepNumber: 4 } };
deleteAndShift(object, 2);
console.log(object);Run Code Online (Sandbox Code Playgroud)
.as-console-wrapper { max-height: 100% !important; top: 0; }Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
506 次 |
| 最近记录: |