相关疑难解决方法(0)

如何检查对象是否在JavaScript中具有属性?

如何检查对象是否在JavaScript中具有属性?

考虑:

x = {'key': 1};
if ( x.hasOwnProperty('key') ) {
    //Do this
}
Run Code Online (Sandbox Code Playgroud)

这是最好的方法吗?

javascript

1396
推荐指数
20
解决办法
90万
查看次数

JSON.stringify,避免TypeError:将循环结构转换为JSON

我有一个大对象,我想转换为JSON并发送.但它具有圆形结构.我想抛出任何存在的循环引用并发送任何可以进行字符串化的内容.我怎么做?

谢谢.

var obj = {
  a: "foo",
  b: obj
}
Run Code Online (Sandbox Code Playgroud)

我想将obj字符串化为:

{"a":"foo"}
Run Code Online (Sandbox Code Playgroud)

javascript json node.js

608
推荐指数
10
解决办法
67万
查看次数

Stringify(转换为JSON)具有循环引用的JavaScript对象

我有一个包含循环引用的JavaScript对象定义:它有一个引用父对象的属性.

它还具有我不想传递给服务器的功能.我如何序列化和反序列化这些对象?

我读过这样做的最好方法是使用Douglas Crockford的stringify.但是,我在Chrome中收到以下错误:

TypeError:将循环结构转换为JSON

代码:

function finger(xid, xparent){
    this.id = xid;
    this.xparent;
    //other attributes
}

function arm(xid, xparent){
    this.id = xid;
    this.parent = xparent;
    this.fingers = [];

    //other attributes

    this.moveArm = function() {
        //moveArm function details - not included in this testcase
        alert("moveArm Executed");
    }
}

 function person(xid, xparent, xname){
    this.id = xid;
    this.parent = xparent;
    this.name = xname
    this.arms = []

    this.createArms = function () {
        this.arms[this.arms.length] = new arm(this.id, this);
    }
}

function group(xid, xparent){
    this.id = …
Run Code Online (Sandbox Code Playgroud)

javascript jquery json stringify

68
推荐指数
5
解决办法
8万
查看次数

在深层对象中按名称查找属性

我有一个巨大的收藏品,我正在寻找集合内某处的钥匙.获取包含该键/索引的所有对象的引用列表或完整路径的可靠方法是什么?我使用jQuery和lodash,如果它有帮助,你可以忘记无限指针递归,这是一个纯JSON响应.

fn({ 'a': 1, 'b': 2, 'c': {'d':{'e':7}}}, "d"); 
// [o.c]

fn({ 'a': 1, 'b': 2, 'c': {'d':{'e':7}}}, "e");
// [o.c.d]

fn({ 'aa': 1, 'bb': 2, 'cc': {'d':{'x':9}}, dd:{'d':{'y':9}}}, 'd');
// [o.cc,o.cc.dd]
Run Code Online (Sandbox Code Playgroud)

fwiw lodash有一个_.find函数,可以找到两个嵌套深度的嵌套对象,但之后似乎失败了.(例如http://codepen.io/anon/pen/bnqyh)

javascript jquery lodash

39
推荐指数
3
解决办法
5万
查看次数

从两个数组创建JavaScript对象

我有两个数组:newParamArr[i]paramVal[i].

newParamArr[i]数组中的示例值: ["Name", "Age", "Email"]

paramVal[i]数组中的示例值: ["Jon", "15", "jon@gmail.com"]

我需要创建一个JavaScript对象,将数组中的所有项放在同一个对象中.例如

{newParamArr[0]:paramVal[0], newParamArr[1]:paramVal[1], ...}

两个数组的长度始终相同,但数组的长度可以增加或减少.如...

newParamArr.length === paramVal.length 将永远返回true.

以下帖子都没有帮助回答我的问题:

用于创建JSON对象的Javascript递归

递归循环遍历对象以构建属性列表

javascript

37
推荐指数
4
解决办法
3万
查看次数

按属性名称递归搜索对象中的值

我正在构建一个实用程序函数,它应该搜索属性名称并在找到它后返回其值.它应该递归地执行此操作:

// Function
util.findVal = (object, propName) => {
  for (let key in object) {
    if (key === propName) {
      console.log(propName)
      console.log(object[key])
      return object[key]
    } else {
      util.findVal(object[key], propName)
    }
  }
}

// Input
object: {
  photo: {
    progress: 20
  }
}

// Usage
util.findVal(object, 'progress')
Run Code Online (Sandbox Code Playgroud)

然而,控制台日志永远存在,浏览器崩溃.我究竟做错了什么?

编辑:

这就是我调用函数的方式:

// Input

item: {
  photo: {
    file: {},
    progress: 20
  }
}

this.findProgress(item)

methods: {
  findProgress (item) {
    return util.findVal(item, this.propName)
  }
}
Run Code Online (Sandbox Code Playgroud)

javascript recursion

13
推荐指数
3
解决办法
1万
查看次数

Object.keys的顺序相反

我有一个有趣的任务.我解决了一半,但无法找到解决其余问题的解决方案.希望有人能指出我正确的方向.

我发现解决方案接近我的任务.但我的略有不同,使用ES6.

有嵌套对象.

let someList = {

   value: 1,

   next: {

      value: 2,

      next: {

         value: 3,

         next: {

            value: 4,

            next: null

            }

         }

    }

};
Run Code Online (Sandbox Code Playgroud)

我收到了所有价值观.

function reversePrint(linkedList) {

Object.keys(linkedList).map(key => {
let myKey = linkedList[key];
typeof myKey == "object" ?  console.log(reversePrint(myKey)) : console.log(myKey);
});

}

reversePrint(someList);
Run Code Online (Sandbox Code Playgroud)

但问题是:我如何以相反的顺序获得所有值?

小提琴:https://jsfiddle.net/L83puqbz/17/

我尝试使用reduce来生成数组并反转它,但每个值都在单独的数组中.

小提琴https://jsfiddle.net/L83puqbz/20/

任何帮助都将受到极大的关注.

javascript

0
推荐指数
1
解决办法
1031
查看次数

如何将js对象转换为点表示法字符串

我有一个像这样的 javascript 普通对象:{a: {b: 1} } 并且我想将其转换为像这样的点符号字符串a.b = 1

用例:

将对象发送到纯文本环境(例如 cli)或作为 url 参数。

javascript

-3
推荐指数
1
解决办法
1965
查看次数

标签 统计

javascript ×8

jquery ×2

json ×2

lodash ×1

node.js ×1

recursion ×1

stringify ×1