相关疑难解决方法(0)

1761
推荐指数
23
解决办法
82万
查看次数

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万
查看次数

如何映射数组并生成对象而不是数组?

我想这个代码:

var arr = [
    { key: 'foo', val: 'bar' },
    { key: 'hello', val: 'world' }
];

var result = arr.map((i) => ([i.key]: i.val)); //something like this

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

返回:

{foo: 'bar', hello: 'world'}
Run Code Online (Sandbox Code Playgroud)

这在ECMA6中是否可行?

javascript arrays object ecmascript-6

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

将复杂数组转换为对象

我正在尝试获取一个嵌套数组并将其转换为一个对象。我不明白为什么undefined当我尝试打印复杂数组时会出现这种情况。

我的目标是改变这个:

var input = [
   [
       ['firstName', 'Joe'], ['lastName', 'Blow'], ['age', 42], ['role', 'clerk']
   ],
   [
       ['firstName', 'Mary'], ['lastName', 'Jenkins'], ['age', 36], ['role', 'manager']
   ]
];
Run Code Online (Sandbox Code Playgroud)

进入这个:

var result = [
    {firstName: 'Joe', lastName: 'Blow', age: 42, role: 'clerk'},
    {firstName: 'Mary', lastName: 'Jenkins', age: 36, role: 'manager'}
]
Run Code Online (Sandbox Code Playgroud)

到目前为止我有这个。我知道我需要一个嵌套循环,但我无法让我的控制台显示任何过去的内容undefined

function transformEmployeeData(employeeData) {
    var output = {};
    var per = {};
    // console.log(per);
    // console.log(employeeData);
    console.log("ED: " + employeeData[0] + "End"); //Expecting the first array in …
Run Code Online (Sandbox Code Playgroud)

javascript arrays object

0
推荐指数
2
解决办法
199
查看次数