我正在处理一项涉及将数组转换为对象的作业,但我有点束手无策。我们从一个数组开始,其中包含两个额外的嵌套数组,每个数组包含可变数量的数组(每个数组包含两个值)。
任务是将所有这些转换为一个包含多个对象的数组。在每个对象中,将有一系列键/值对,它们等于每个最小给定数组中的两个值。
例如
参数将如下所示:
[
[['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) 我需要一些帮助.
我必须为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*)+$,它可以在这里测试.但是我的正则表达式还不够,因为它接受同一行中多个金额的文本.
谢谢
在使用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) 我需要通过命令行从我的谷歌驱动器下载文件或文件夹。想到一个脚本,一个批处理文件,windows平台。
看到我可以使用 gdrive 应用程序,但我在语法上遇到了一些问题。
我试过:
gdrive-windows-x64.exe download -r --path "G:\My Drive\myfolder"
Run Code Online (Sandbox Code Playgroud)
但它给我带来了“无效参数”的错误
我也对一种将文件夹内容压缩到我的谷歌驱动器上的方法感兴趣......再次通过命令行
有人可以帮助我吗?
非常感谢马可
当我尝试退出时,我收到错误的无路线匹配[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) 当我打电话时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) 我想向我的 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) 我在我的一个项目中使用的是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)
我对递归的工作方式不满意。因此,我无法显示我尝试过的任何内容。请帮忙。任何帮助,将不胜感激。
我想在延迟一段时间后自动关闭弹出窗口.但它显示错误错误图像
$('#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中定义一个全局数组(在页面顶部):
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函数,为什么值会被删除?