相关疑难解决方法(0)

克隆除一个键之外的js对象

我有一个扁平的JS对象:

{a: 1, b: 2, c: 3, ..., z:26}
Run Code Online (Sandbox Code Playgroud)

我想克隆除一个元素之外的对象:

{a: 1, c: 3, ..., z:26}
Run Code Online (Sandbox Code Playgroud)

最简单的方法是什么(如果可能,最好使用es6/7)?

javascript ecmascript-harmony ecmascript-6 ecmascript-7

237
推荐指数
16
解决办法
13万
查看次数

JavaScript:对象的filter()

如果我理解正确,ECMAScript 5有类型的filter()原型Array,但不是Object类型.

我如何在JavaScript中实现filter()for Object

假设我有这个对象:

var foo = {
    bar: "Yes"
};
Run Code Online (Sandbox Code Playgroud)

我想写一个filter()适用于Objects的:

Object.prototype.filter = function(predicate) {
    var result = {};

    for (key in this) {
        if (this.hasOwnProperty(key) && !predicate(this[key])) {
            result[key] = this[key];
        }
    }

    return result;
};
Run Code Online (Sandbox Code Playgroud)

这在我在下面的演示中使用时有效,但是当我将它添加到使用jQuery 1.5和jQuery UI 1.8.9的网站时,我在FireBug中遇到了JavaScript错误.

Object.prototype.filter = function(predicate) {
  var result = {};
  for (key in this) {
    if (this.hasOwnProperty(key) && !predicate(this[key])) {
      console.log("copying");
      result[key] = this[key];
    }
  } …
Run Code Online (Sandbox Code Playgroud)

javascript jquery filtering object

136
推荐指数
11
解决办法
27万
查看次数

Javascript - 对象键 - >值

var obj = {
   a: "A",
   b: "B",
   c: "C"
}

console.log(obj.a); // return string : A
Run Code Online (Sandbox Code Playgroud)

但我希望通过这样的变量

var name = "a";
console.log(obj.name) // but return undefined
Run Code Online (Sandbox Code Playgroud)

这该怎么做?

javascript

73
推荐指数
4
解决办法
15万
查看次数

下划线作为JavaScript变量?

这篇文章中,Nick Craver提供了一个答案:

function(_, id)
Run Code Online (Sandbox Code Playgroud)

在使用它之前,此代码不会将下划线声明为变量.我在谷歌和此处的搜索仅指向使用下划线作为前缀的引用,而不是作为变量本身.它有什么作用?我喜欢Nick的解决方案,但这让我感到烦恼.

javascript

30
推荐指数
4
解决办法
1万
查看次数

.filter 不是函数

这是我的对象(确保它是一个 typeof 对象):

{
    "1": {"user_id":1,"test":"","user_name":"potato0","isok":"true"},

    "2":{"user_id":2,"test":"","user_name":"potato1","isok":" true"},

    "3":{"user_id":3,"test":"","user_name":"potato2","isok":" true"},

    "4":{"user_id":4,"test":"","user_name":"potato3","isok":"locationd"}

}
Run Code Online (Sandbox Code Playgroud)

为什么使用.filter对我不起作用?

是因为我的变量是typeof object并且该方法仅适用于数组吗?

this.activeUsers = window.users.filter( function(user) {
     // return ( (user.test === '0') && (user.isok === '0') ); 
     return user.user_id === 1;
}); 
Run Code Online (Sandbox Code Playgroud)

得到错误:

.filter 不是函数

建议的对象替代方案是什么?

javascript functional-programming filter ecmascript-6

16
推荐指数
1
解决办法
6万
查看次数

从 JavaScript 中的对象克隆具有特定属性的对象?

从具有特定属性(而不是全部)的另一个对象克隆一个对象的优化方法是什么?

如下所示,我们可以通过对象的投影来获取值:

let tempObject = { 
  prop1 : 'something',
  prop2 : 'something' ,
  other : 'others'
};
//then
let { prop1, prop2} = tempObject;
Run Code Online (Sandbox Code Playgroud)

同样,我想从另一个对象克隆一些属性,例如

let oldObject = { 
  p1 : 'something',
  p2 : 'somethig',
  p3 : 'something' 
}
Run Code Online (Sandbox Code Playgroud)

想要从上面制作另一个oldObject仅具有p1 and p2这两个属性的对象。预计newObject将会{p1 : 'something', p2 : 'somethig'}

我知道有很多方法可以做到这一点,但我想通过解释了解优化方法。

javascript clone object

5
推荐指数
1
解决办法
207
查看次数

有没有办法在es6中将对象解构为新对象?

例如,我有这个对象:

const payload = {
    apple: 1,
    dog: 2,
    cat: 3
}
Run Code Online (Sandbox Code Playgroud)

我想将它解构为一个只包含apple和的新对象dog:

const newPayload = {
    apple:1,
    dog: 2
}
Run Code Online (Sandbox Code Playgroud)

就像是:

const {{apple, dog} : newPayload} = payload
Run Code Online (Sandbox Code Playgroud)

显然以上是错误的,但想知道是否有办法做这样的事情.

谢谢!

javascript ecmascript-6 reactjs

3
推荐指数
2
解决办法
758
查看次数

如何打印除一个之外的对象,而不删除任何内容(JavaScript)

所以我想过滤对象的对象,并打印除我通过键指定的一个之外的所有对象。

const obj = {1: {age: 10}, 2: {age: 20}};

console.log(obj);
Run Code Online (Sandbox Code Playgroud)

所以我必须有选择以某种方式指定我不希望打印 obj[1] 。我怎么做?: |

  • 我不想从中删除任何内容。

javascript

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

如何在 Node.js 中过滤 JSON 中的键?

我正在尝试从 JSON 数组中选择某些键,然后过滤其余的键。

var json = JSON.stringify(body);
Run Code Online (Sandbox Code Playgroud)

这是:

{  
   "FirstName":"foo",
   "typeform_form_submits":{  
      "foo":true,
      "bar":true,
      "baz":true
   },
  "more keys": "foo",
  "unwanted key": "foo"
}
Run Code Online (Sandbox Code Playgroud)

想要我想要:

{  
   "FirstName":"foo",
   "typeform_form_submits":{  
      "foo":true,
      "bar":true,
      "baz":true
   }
}
Run Code Online (Sandbox Code Playgroud)

我已经查看了如何在node.js中过滤JSON数据?,但我希望在没有任何软件包的情况下做到这一点。

json node.js

2
推荐指数
1
解决办法
5018
查看次数