相关疑难解决方法(0)

如何遍历包含对象的数组并访问其属性

我想循环遍历数组中包含的对象并更改每个对象的属性.如果我这样做:

for (var j = 0; j < myArray.length; j++){

console.log(myArray[j]);

}
Run Code Online (Sandbox Code Playgroud)

控制台应该调出阵列中的每个对象,对吧?但实际上它只显示第一个对象.如果我控制台将数组记录在循环外部,那么所有对象都会出现,所以肯定会有更多.

无论如何,这是下一个问题.如何使用循环访问数组中的Object1.x?

for (var j = 0; j < myArray.length; j++){

console.log(myArray[j.x]);

}
Run Code Online (Sandbox Code Playgroud)

这将返回"未定义".循环外的控制台日志再次告诉我,对象都具有"x"的值.如何在循环中访问这些属性?

我被推荐到其他地方为每个属性使用单独的数组,但我想确保我已经用尽了这个大道.

谢谢!

javascript arrays iteration

160
推荐指数
12
解决办法
33万
查看次数

列表推导和功能函数是否比"for loops"更快?

在Python的性能方面,是一个列表理解,还是比for循环更快的map(),filter()和reduce()等函数?从技术上讲,为什么它们"以C速度运行",而"for循环以python虚拟机速度运行"?

假设在我正在开发的游戏中,我需要使用for循环绘制复杂且巨大的地图.这个问题肯定是相关的,因为如果列表理解确实更快,那么为了避免滞后(尽管代码的视觉复杂性),这将是一个更好的选择.

python performance for-loop list-comprehension map-function

130
推荐指数
7
解决办法
7万
查看次数

如何停止JavaScript for循环?

我正在使用这个JavaScript迭代一个数组并找到一个匹配的数组元素:

var remSize = [], 
    szString, remData, remIndex, i;

for (i = 0; i < remSize.length; i++) {      
    // I'm looking for the index i, when the condition is true
    remSize[i].size == remData.size ? remIndex = i : remIndex = -1;     
}
Run Code Online (Sandbox Code Playgroud)

该数组包含这些"大小":["34", "36", "38"...].

remData.size 是我正在寻找的"大小"(例如"36").

i如果我正在搜索的大小在索引中,我需要返回索引.否则我需要回来-1.有一个更好的方法吗?

javascript for-loop

113
推荐指数
3
解决办法
15万
查看次数

.map,.every和.forEach有什么区别?

我一直想知道它们之间有什么区别.他们似乎都在做同样的事情......

javascript foreach map-function

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

为什么JavaScript中的对象不可访问?

为什么默认情况下对象不可迭代?

我一直看到与迭代对象有关的问题,常见的解决方案是迭代对象的属性并以这种方式访问​​对象中的值.这似乎很常见,它让我想知道为什么对象本身不可迭代.

for...of默认情况下,像ES6 这样的语句很适合用于对象.因为这些功能仅适用于不包含{}对象的特殊"可迭代对象" ,所以我们必须通过箍来使这个对我们想要使用它的对象起作用.

for ... of语句创建一个循环迭代可迭代对象 (包括Array,Map,Set,arguments对象等)......

例如,使用ES6 生成器功能:

var example = {a: {e: 'one', f: 'two'}, b: {g: 'three'}, c: {h: 'four', i: 'five'}};

function* entries(obj) {
   for (let key of Object.keys(obj)) {
     yield [key, obj[key]];
   }
}

for (let [key, value] of entries(example)) {
  console.log(key);
  console.log(value);
  for (let [key, value] of entries(value)) {
    console.log(key);
    console.log(value);
  }
}
Run Code Online (Sandbox Code Playgroud)

当我在Firefox(支持ES6)中运行代码时,上面按照我期望的顺序正确记录数据:

hacky的输出

默认情况下,{}对象不可迭代,但为什么?缺点是否超过了可迭代对象的潜在好处?与此相关的问题是什么?

此外,由于{}对象是从"阵列状"集合和"可迭代的对象",如不同NodeList,HtmlCollection以及arguments …

javascript arrays iterator ecmascript-5 ecmascript-6

72
推荐指数
4
解决办法
5万
查看次数

在JavaScript中读取数组的`length`属性真是那么昂贵吗?

我总是假设在JavaScript中缓存数组的长度是一个好主意(特别是在for循环的条件下),因为计算数组的长度是昂贵的.

for (var i = 0; i < arr.length; i++) { }

// vs

for (var i = 0, arrLength = arr.length; i < arrLength; i++) { }
Run Code Online (Sandbox Code Playgroud)

但是,我想也许该length属性只是在创建和更改数组时更新.因此,阅读它不应该是一个操作太昂贵而不是读取存储在变量中的操作(与其他语言中可能需要在内存中寻找某些内容的其他方法相反,例如strlen()在C中).

我有两个问题.我也对它是如何工作感兴趣,所以请不要用过早的优化棒打我.

假设浏览器中的JavaScript引擎.

  1. length在JavaScript中缓存数组的属性有什么好处吗?是否有更多的参与在对象的属性上读取局部变量?
  2. length属性是否仅在创建和on上更改,shift()并且pop()类型方法不返回新数组,否则只是存储为整数?

javascript arrays

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

如何在JavaScript中打印对象数组?

我在JavaScript中创建了一个对象数组.如何在浏览器窗口中打印对象数组,类似于print_rPHP中的功能?

var lineChartData = [{
            date: new Date(2009, 10, 2),
            value: 5
        }, {
            date: new Date(2009, 10, 25),
            value: 30
        }, {
            date: new Date(2009, 10, 26),
            value: 72,
            customBullet: "images/redstar.png"
        }];
Run Code Online (Sandbox Code Playgroud)

javascript arrays object

63
推荐指数
4
解决办法
34万
查看次数

ES6是否为对象属性引入了明确定义的枚举顺序?

ES6是否为对象属性引入了明确定义的枚举顺序?

var o = {
  '1': 1,
  'a': 2,
  'b': 3
}

Object.keys(o); // ["1", "a", "b"] - is this ordering guaranteed by ES6?

for(let k in o) {
  console.log(k);
} // 1 2 3 - is this ordering guaranteed by ES6?
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6

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

循环遍历javascript对象的最佳实践

我有以下JS对象,我需要将parseFloat应用于任何数字值字段(以便ngTable正确排序).

我正在通过Object循环执行此操作.我已经尝试过嵌套的angular.forEach但是我遇到了范围问题(内部循环没有看到外部变量).

接近这个的最佳方式是什么?

编辑:应该提到对象名称(即:Person,PersonDetails)是动态的.:/

我的目标:

{
    "data": [
        {
            "Person": {
                "id" : "1",
                "age": "23",
                "days": "5",
                "first_name": "Joe",
                "last_name": "Smith",
            },
            "PersonDetails": {
                "id": "4",
                "name": "Cousin",
                "oldest: "2",
            }
        },
        {
            "Person": {
                "id" : "2",
                "age": "18",
                "days": "3",
                "first_name": "John",
                "last_name": "Doe",
            },
            "PersonDetails": {
                "id": "4",
                "name": "Second Cousin",
                "oldest: "3",
            }
        }
        ...
        ...
    ]
};
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

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

微观优化值得花时间吗?

我是一名PHP开发人员,我一直认为微优化不值得花时间.如果你真的需要额外的性能,你可以编写你的软件,使其在架构上更快,或者你编写一个C++扩展来处理慢速任务(或者更好的是,使用HipHop编译代码).然而,今天一位工作伙伴告诉我,这有很大的不同

is_array($array)
Run Code Online (Sandbox Code Playgroud)

$array === (array) $array
Run Code Online (Sandbox Code Playgroud)

而且我就像"呃,这真是一个毫无意义的比较",但他不同意我的看法......他是我们公司最好的开发人员,并且负责一个每天大约有5000万次SQL查询的网站 - - 例如.所以,我在这里想知道:他可能是错的还是微优化真的值得花时间和时间?

php optimization performance

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