Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用点作为另一个dict扩展dict键_Javascript_Backbone.js - Fatal编程技术网

Javascript 用点作为另一个dict扩展dict键

Javascript 用点作为另一个dict扩展dict键,javascript,backbone.js,Javascript,Backbone.js,我有一本字典看起来像 var p = { 'name' : "John", 'personal.phone' : "123456", 'office.phone.number' : "321654", 'office.phone.extn': "4" } 我想用像这样展开的点状键转换dict { 'name' : "John", 'personal' : { 'phone' : "1234

我有一本字典看起来像

var p = {
     'name' : "John",
     'personal.phone' : "123456",
     'office.phone.number' : "321654",
     'office.phone.extn': "4"
}
我想用像这样展开的点状键转换dict

{
     'name' : "John",
     'personal' : {
                       'phone' : "123456",
                  }
     'office' :   {
                        'phone' : { 
                                      number : "321654",
                                      extn : "4" 
                                  }
}
我为扩展单个键编写的函数。但它并没有退出循环

function expdictkey(str,v) {
    str = str.split(".").reverse();
    var p = {}
    for (var i = 0; i < str.length; i++)
    {
        p[str[i]] = p
        console.log(p)
    }
    return p;
}
函数expdictkey(str,v){
str=str.split(“.”).reverse();
var p={}
对于(变量i=0;i
expdictkey(“phone.number.extn”,“4”)

我以第一个dict的形式从一个from中获取值,我想将其转换为第二个dict,然后将其放入模型中并保存。使用backbone.js和django rest服务器。在服务器中,模型以第二条命令的形式出现。

给您:

var p = {
  'name': "John",
  'personal.phone': "123456",
  'office.phone.number': "321654",
  'office.phone.extn': "4"
}




function unwrap() {
  var obj = {};
  for (var index in p) {
    var keys = index.split('.');
    var value = p[index];
    var ref = obj;
    for (var i = 0; i < keys.length; i++) {
      var key = keys[i];
      if (keys.length - 1 === i) {
        ref[key] = value;
      } else {
        if (ref[key] === undefined) {
          ref[key] = {}
        }
        ref = ref[key]
      }
    }
  }
  return obj;
}

unwrap(p);
var p={
“姓名”:“约翰”,
'个人电话':“123456”,
‘办公室电话号码’:‘321654’,
'office.phone.extn':“4”
}
函数展开(){
var obj={};
对于(以p为单位的var指数){
var key=index.split('.');
var值=p[指数];
var ref=obj;
对于(变量i=0;i
给你:

var p = {
  'name': "John",
  'personal.phone': "123456",
  'office.phone.number': "321654",
  'office.phone.extn': "4"
}




function unwrap() {
  var obj = {};
  for (var index in p) {
    var keys = index.split('.');
    var value = p[index];
    var ref = obj;
    for (var i = 0; i < keys.length; i++) {
      var key = keys[i];
      if (keys.length - 1 === i) {
        ref[key] = value;
      } else {
        if (ref[key] === undefined) {
          ref[key] = {}
        }
        ref = ref[key]
      }
    }
  }
  return obj;
}

unwrap(p);
var p={
“姓名”:“约翰”,
'个人电话':“123456”,
‘办公室电话号码’:‘321654’,
'office.phone.extn':“4”
}
函数展开(){
var obj={};
对于(以p为单位的var指数){
var key=index.split('.');
var值=p[指数];
var ref=obj;
对于(变量i=0;i
给你:

var p = {
  'name': "John",
  'personal.phone': "123456",
  'office.phone.number': "321654",
  'office.phone.extn': "4"
}




function unwrap() {
  var obj = {};
  for (var index in p) {
    var keys = index.split('.');
    var value = p[index];
    var ref = obj;
    for (var i = 0; i < keys.length; i++) {
      var key = keys[i];
      if (keys.length - 1 === i) {
        ref[key] = value;
      } else {
        if (ref[key] === undefined) {
          ref[key] = {}
        }
        ref = ref[key]
      }
    }
  }
  return obj;
}

unwrap(p);
var p={
“姓名”:“约翰”,
'个人电话':“123456”,
‘办公室电话号码’:‘321654’,
'office.phone.extn':“4”
}
函数展开(){
var obj={};
对于(以p为单位的var指数){
var key=index.split('.');
var值=p[指数];
var ref=obj;
对于(变量i=0;i
给你:

var p = {
  'name': "John",
  'personal.phone': "123456",
  'office.phone.number': "321654",
  'office.phone.extn': "4"
}




function unwrap() {
  var obj = {};
  for (var index in p) {
    var keys = index.split('.');
    var value = p[index];
    var ref = obj;
    for (var i = 0; i < keys.length; i++) {
      var key = keys[i];
      if (keys.length - 1 === i) {
        ref[key] = value;
      } else {
        if (ref[key] === undefined) {
          ref[key] = {}
        }
        ref = ref[key]
      }
    }
  }
  return obj;
}

unwrap(p);
var p={
“姓名”:“约翰”,
'个人电话':“123456”,
‘办公室电话号码’:‘321654’,
'office.phone.extn':“4”
}
函数展开(){
var obj={};
对于(以p为单位的var指数){
var key=index.split('.');
var值=p[指数];
var ref=obj;
对于(变量i=0;i
backbone.js在这里做什么呢?我从一个from中以第一个dict的形式获取值,我想将其转换并放入模型中保存。使用backbonejs和django rest服务器。在服务器中,模型是以第二个dict的形式出现的
backbone.js
在这里做什么?我以第一个dict的形式从一个from获取值,我想将其转换并放入模型中并保存它。使用backbonejs和django rest服务器。在服务器中,模型是以第二个dict的形式出现的
backbone.js
在这里做什么?我以第一个dict的形式从一个from获取值,我想将其转换并放入模型中并保存它。使用backbonejs和django rest服务器。在服务器中,模型是以第二个dict的形式出现的
backbone.js
在这里做什么?我以第一个dict的形式从一个from获取值,我想将其转换并放入模型中并保存它。使用backbonejs和django rest服务器。在服务器中,模型是以第二种形式存在的,您真的应该添加
if(p.hasOwnProperty(index))
来保护循环。我不这么认为,相反,不要将原型添加到iterable对象。每个对象都有一个JavaScript原型,无论您喜欢与否。扩展Object.prototype可能会让人不悦,但更糟糕的是,编写的代码很容易被破坏。我认为这是一种偏好。我明白你在说什么,特别是如果你使用了很多外国代码。但老实说,不要在javascript中扩展iterable对象。你真的应该添加
if(p.hasOwnProperty(index))
来保护循环。我不这么认为,相反,不要向iterable对象添加原型。不管你喜欢与否,每个对象都有一个javascript原型。扩展Object.prototype可能会让人不悦,但更糟糕的是,编写的代码很容易被破坏。我认为这是一种偏好。我明白你在说什么,特别是如果你使用了很多外国代码。但老实说,不要在javascript中扩展iterable对象。你真的应该添加
if(p.hasOwnProperty(index))
来保护循环。我不这么认为,相反,不要向iterable对象添加原型。不管你喜欢与否,每个对象都有一个javascript原型。扩展Object.prototype可能会让人不悦,但更糟糕的是,编写的代码很容易被破坏。我认为这是一种偏好。我明白你在说什么,特别是如果你使用了很多外国代码。但老实说,不要在javascript中扩展iterable对象。你真的应该添加
if(p.hasOwnProperty(index))
来保护循环。我不这么认为,相反,不要向iterable对象添加原型。不管你喜欢与否,每个对象都有一个javascript原型。扩展Object.prototype可能会让人不悦,但更糟糕的是,编写的代码很容易被破坏。我认为这是一种偏好。我明白你在说什么,特别是如果你使用了很多外国代码。但老实说,不要扩展iterable对象