【发布时间】:2020-02-05 07:04:30
【问题描述】:
有一个具有上述结构的对象。有了这个对象,我需要操纵对象“prop21”数组中存在的对象之一。
let obj = {
prop: {
prop21: [
{
field: "val1",
value1: "val2"
}
]
}
}
以下场景:
每当我将“ack”传递给函数时
1) 我需要创建一个格式为 { field: "ack" , value : true } 的对象并将其推送到 prop21 数组,以防不存在 { field: "ack" , value : true } 的对象.
2) 如果存在 { field: "ack" , value : false },则将 value 转换为 true
当我将“unack”传递给函数时
1) 我需要创建一个格式为 { field: "ack" , value : false } 的对象并将其推送到 prop21 数组,以防不存在 { field: "ack" , value : false } 的对象.
2) 如果存在 { field: "ack" , value : true },则将 value 转换为 false
当我将“全部”传递给函数时
它应该基本上删除 object { field :"ack" , value : true} 或 {field: "ack" , value: false} 如果存在
function manipulate(val) {
let newObj = { field: "ack", operator: "=", value: true }
if (value === "ack") {
// change the "value" field of object with field:"ack" to true if its present, else create a new one with format of "newObj" with value true and push it
}
else if (value === "unack") {
// change the "value" field of object with field:"ack" to false if its present, else create a new one with format of "newObj" with valye false and push it
}
else {
//this is case for value === "all" , hence remove the object with field with value "ack"
}
}
【问题讨论】:
-
你是否在程序的另一个地方对数组进行了变异?
-
@NinaScholz 是的,我也使用相同的数组和其他函数。基本上我在全局声明了 obj,所以所有函数都会共享它
标签: javascript ecmascript-6 ecmascript-5