【问题标题】:Clone javascript object and update the values克隆 javascript 对象并更新值
【发布时间】:2015-03-18 20:27:32
【问题描述】:

我对更新 json 中的值的逻辑有疑问。 初始 json 是

var val = {
    "data": [
      {x: 1396328400000, y: 92, num: "243"},          
      {x: 1425189600000, y: 91, num: "158"}              
    ]
};

我想将data 复制到另一个对象data1 中,该对象包含在 val 中。 考虑到当前月份是 2015 年 3 月,timeInMilliSeconds 将给出 1425189600000 的值,如果代码遇到此值,则应将第一个 data 数组中的 num 替换为 0。除了data1 中的1425189600000,所有值都应该是0

这里是jsfiddle

var date = new Date();
    timeInMilliSeconds = Date.parse(date.getFullYear() + "/" +(date.getMonth()+1));

val = {
    "data": [
      {x: 1396328400000, y: 92, num: "243"},          
      {x: 1425189600000, y: 91, num: "0"}              
    ],
    "data1": [ 
      {x: 1396328400000, y: 92, num: "0"},          
      {x: 1425189600000, y: 91, num: "158"}
    ]
};

【问题讨论】:

  • @Bergi 抱歉,打错了。
  • 您的问题不清楚。我还想知道您的示例数据是否有点太大。你能把它修剪成一个只有 2-3 个值的对象,并更清楚地解释(a)你想要发生的事情和(b)你当前的代码有什么问题吗?您实际上还没有发布任何代码(以显示您尝试过的内容)...
  • 会不会是typeof timeInMilliSeconds 是一个对象,但您正在与一个数字进行比较?
  • @brianvaughn 请查看更新。当我在 data1 中遇到它们时,我无法遍历键并将 num 值更新为 0
  • @brianvaughn 我已经更新了fiddle,我已经完成了一半的解决方案。

标签: javascript jquery json object


【解决方案1】:

在我看来你只需要更新你的支票以确保你正在投射到一个数字:

if(k == 'num' && parseInt(val.data[prop]['x']) == timeInMilliSeconds) {

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-08
    • 2011-07-18
    • 2017-07-20
    • 1970-01-01
    相关资源
    最近更新 更多