小编31p*_*piy的帖子

在javascript中将嵌套数组转换为对象

我正在处理一项涉及将数组转换为对象的作业,但我有点束手无策。我们从一个数组开始,其中包含两个额外的嵌套数组,每个数组包含可变数量的数组(每个数组包含两个值)。

任务是将所有这些转换为一个包含多个对象的数组。在每个对象中,将有一系列键/值对,它们等于每个最小给定数组中的两个值。

例如

参数将如下所示:

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

鉴于该输入,返回值应如下所示:

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

使用调试器,我确定我的代码正确地将键/值对分配给 return 语句中的第一个对象。但是,当循环继续时,不是创建新的嵌套对象,而是替换来自第一个对象的键/值对,因此我最终只得到一个对象,该对象具有来自被评估的最终数组的正确键值对。

到目前为止,这是我的代码:

function transformEmployeeData(employeeData) {
  var obj = {}, arr = []
  for (var i = 0; i < employeeData.length; i ++) {
    for (var j = 0; j < employeeData[i].length; j ++) {
      var key = employeeData[i][j][0];
      var …
Run Code Online (Sandbox Code Playgroud)

javascript arrays nested object

5
推荐指数
2
解决办法
5754
查看次数

正则表达式验证angularjs中的整个多行文本

我需要一些帮助.
我必须为angularjs ng-pattern属性构造一个正则表达式.正则表达式必须验证文本,而不是每行或某些部分.文本必须包含一些精确为2位小数的金额,每个金额应输入新行.此外,在每个金额之前和之后接受空格.如果一行包含2个金额,则整个文本无效.

例如,此文本有效,因为每个金额都在新行中输入:

123.34 
12345.56
2.54
Run Code Online (Sandbox Code Playgroud)

此示例无效,因为一行包含2个金额:

12.43
123.32 2345.54
124.43
Run Code Online (Sandbox Code Playgroud)

此示例无效,因为一个金额不包含2个小数(每个金额必须精确为2个小数):

123
123.43
123.65
Run Code Online (Sandbox Code Playgroud)

我最好的尝试是^(([0-9]+[.][0-9]{2})\s*)+$,它可以在这里测试.但是我的正则表达式还不够,因为它接受同一行中多个金额的文本.

谢谢

javascript regex validation angularjs

5
推荐指数
2
解决办法
859
查看次数

mobx的`action.bound`和类函数的箭头函数之间的区别?

在使用babel的类上使用箭头函数进行转换,以便在构造函数中绑定定义.因此它不在原型中,并且super在继承时不可用.通过创建许多实例进行缩放时,它也不那么有效.

关于这个主题有更多的博客文章,但我只是想知道在使用babel时,与箭头函数相比,mobx.action.bound的处理方式有何不同.

比较两者:

class Example {
   test = () => {
      console.log(this.message)
   }
}

class Example {
   @action.bound
   test() {
      console.log(this.message)
   }
}
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 babeljs mobx

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

如何通过命令行从谷歌驱动器下载文件

我需要通过命令行从我的谷歌驱动器下载文件或文件夹。想到一个脚本,一个批处理文件,windows平台。

看到我可以使用 gdrive 应用程序,但我在语法上遇到了一些问题。

我试过:

gdrive-windows-x64.exe download -r --path "G:\My Drive\myfolder"
Run Code Online (Sandbox Code Playgroud)

但它给我带来了“无效参数”的错误

我也对一种将文件夹内容压缩到我的谷歌驱动器上的方法感兴趣......再次通过命令行

有人可以帮助我吗?

非常感谢马可

command download

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

没有路由匹配[GET]"/ users/sign_out"rails 5

当我尝试退出时,我收到错误的无路线匹配[GET]"/ users/sign_out".这是我的Signout的链接标记.

 <%= link_to "Sign Out", destroy_user_session_path, method: :get , class:  "nav-link"  %>
Run Code Online (Sandbox Code Playgroud)

以下是我的用户模型和Devise相关的路线:

Rails.application.routes.draw do
  devise_for :users do
    get '/users/sign_out' => 'devise/sessions#destroy'
  end

  root 'books#index'
  resources :books do

    member do
      put "like", to: "books#upvote"
    end

  end
end
Run Code Online (Sandbox Code Playgroud)

这是我的设计.rb

config.sign_out_via = :get
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails devise ruby-on-rails-5

4
推荐指数
2
解决办法
1579
查看次数

库未加载:@rpath/libpng16.16.dylib

当我打电话时mpl_toolkits.basemap,出现以下错误,任何人都可以帮忙吗?

ImportError: dlopen(/Users/pegah/anaconda3/lib/python3.6/site-packages/matplotlib/ft2font.cpython-36m-darwin.so, 2): Library not loaded: @rpath/libpng16.16.dylib
Referenced from: /Users/pegah/anaconda3/lib/libfreetype.6.dylib
Reason: Incompatible library version: libfreetype.6.dylib requires version 51.0.0 or later, but libpng16.16.dylib provides version 49.0.0
Run Code Online (Sandbox Code Playgroud)

python matplotlib-basemap

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

angularjs 4:如何发布原始 JSON 数据

我想向我的 php api 发送以下请求:

POST /MyProject/api-get?call=get-account HTTP/1.1
Host: localhost

{
"id":1
}
Run Code Online (Sandbox Code Playgroud)

这是api:

public function actionApiGet($call){
    $data = json_decode(file_get_contents('php://input'), true);
    ...
}
Run Code Online (Sandbox Code Playgroud)

我的组件.ts:

import { Component } from '@angular/core';
import { Router } from '@angular/router';
import { ActivatedRoute } from '@angular/router';
import { Api } from '../../services/Api';
import { Account } from '../../models/Account';
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';

@Component({
  selector: 'app-account-individual',
  templateUrl: './account-individual.component.html',
  styleUrls: ['./account-individual.component.css']
})
export class AccountIndividualComponent{

  constructor(private route: ActivatedRoute, private proxy: Api) {
    const …
Run Code Online (Sandbox Code Playgroud)

php json http angular

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

递归替换所有对象值

我在我的一个项目中使用的是angular 4,因此我必须将所有{ data } 替换为{{ data }}。即如果我有这样的对象

{
    key: {
             key1: {
                       key2: "This is data {someData}",
                       key3: "This is data2 {someData2}"
                   }
         },
    key2: "This is data3 {someData3}"
}
Run Code Online (Sandbox Code Playgroud)

结果应该是

{
    key: {
             key1: {
                       key2: "This is data {{someData}}",
                       key3: "This is data2 {{someData2}}"
                   }
         },
    key2: "This is data3 {{someData3}}"
}
Run Code Online (Sandbox Code Playgroud)

我对递归的工作方式不满意。因此,我无法显示我尝试过的任何内容。请帮忙。任何帮助,将不胜感激。

javascript

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

错误:没有为popover bootstrap命名为"destroy"的方法

我想在延迟一段时间后自动关闭弹出窗口.但它显示错误错误图像

$('#prev_button').popover('show');

$('#prev_button').on('shown.bs.popover', function() {
  var $pop = $(this);

  setTimeout(function() {
    $pop.popover('destroy');
  }, 1000);
});
Run Code Online (Sandbox Code Playgroud)

包含bootstrap.bundle.js以确保popover方法有效.无法找到解决方案

PS:使用v4.1 bootstrap

javascript css popover twitter-bootstrap

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

JavaScript全局数组在jQuery get函数之外失去了价值

我读过"提升","范围"和"回调",但我仍然无法解决一个简单的问题.

首先,我在JavaScript中定义一个全局数组(在页面顶部):

var thefileNames = [];
Run Code Online (Sandbox Code Playgroud)

我使用jQuery函数来获取文件夹的内容并将它们存储在这个数组中:

jQuery.get(order, function(data) {
  $(data).find("a:contains(.txt)").each(function() {
    thefileNames.push($(this).attr("href"));
    console.log(thefileNames);
  })
});
Run Code Online (Sandbox Code Playgroud)

在控制台中,我将看到目录中每个文件的更新,直到我最后得到类似的东西(那里有3个文件):

File1.txt
File2.txt
File3.txt
Run Code Online (Sandbox Code Playgroud)

所以信息显然在"thefileNames"中.但是,如果我在我的代码中使用其他任何地方并使用:

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

我会得到这个结果:

[]
Run Code Online (Sandbox Code Playgroud)

鉴于"thefileNames"是一个全局变量,我不明白这一点.一旦我离开jQuery函数,为什么值会被删除?

javascript arrays jquery global-variables

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