以下是表单组件
import React from 'react';
import { Elements } from '@helpers/ImportProxy';
import { mockApi } from '@constants/api';
type Props = {
// formValues: any
};
type MapKindToComponentT = {
[key: string]: React.SFC
}
/** @component */
export const Form: React.SFC<Props> = __props => {
const renderQuestions = () =>
mockApi.map(
(question, index): React.ReactElement | undefined => {
const mapKindToComponent: MapKindToComponentT = {
radio: Elements.RadioElement,
text: Elements.InputElement,
email: Elements.InputElement,
url: Elements.InputElement,
checkbox: Elements.CheckBoxElement,
dropdown: Elements.SelectElement,
textarea: Elements.TextareaElement,
};
if(mapKindToComponent[question.kind]) {
const …Run Code Online (Sandbox Code Playgroud) 我有一个现有的对象文字:
var words=[
{
"word":"callous",
"definition":"uncaring",
"examples": [
{"sentence":"How could you be so callous?"},
{"sentence":"What a callous thing to say!"},
{"sentence":"That showed a callous disregard for the consequences."}
]
}
Run Code Online (Sandbox Code Playgroud)
];
我正在尝试动态添加更多对象,如下所示:
var obj={};
obj.word="nextword";
obj.definition ="nextword definition";
obj.examples= ???;
for (var i = 0; i < nextwordSentencesArray.length; i++) {
??? obj.examples.sentence.push(nextwordSentencesArray[i]);
}
words.push(obj);
Run Code Online (Sandbox Code Playgroud)
我曾在-???-尝试过各种选项,但没有任何效果。感激之至。
在我的程序中,我通常有很多带有签名的函数myFunc({ param })。我想测试每次使用新对象或使用包含对象的变量调用这些函数之间有什么区别。IE:
myFuncA({ param: 1 });
// vs
const paramObj = { param: 1 };
myFuncB(paramObj);
Run Code Online (Sandbox Code Playgroud)
所以我想出了一个简单的测试:
let a = 0;
let b = 0;
function myFuncA({ param }) {
a += param;
}
function myFuncB({ param }) {
b += param;
}
const iterations = 1e9;
console.time('myFuncA');
for(let i = 0; i < iterations; i++) {
myFuncA({ param: 1 });
}
console.timeEnd('myFuncA')
console.time('myFuncB');
const paramObj = { param: 1 };
for(let i = 0; i < …Run Code Online (Sandbox Code Playgroud) 如何创建一个从变量中评估属性名称的对象?
例如:
我有变量 myString = 'aString'
我想创建对象:
var obj = {
aString : "value";
}
Run Code Online (Sandbox Code Playgroud)
我想用变量myString来创建它.
我提出的唯一解决方案是这样的:
var string = '{"' + myString + '": value }';
var obj = $.parseJSON(string);
Run Code Online (Sandbox Code Playgroud)
我怎样才能使这更有效,更清洁?
我一直收到错误:Uncaught SyntaxError:Unexpected token'
这是完整的JSON响应:
'app': {type: 'app', desc: 'Application'}, 'iso': {type: 'iso', desc: 'ISO Disk Image'}, 'fla': {type: 'fla', desc: 'Adobe Flash Document'}, 'dll': {type: 'dll', desc: 'Dynamic Link Library'}
Run Code Online (Sandbox Code Playgroud)
我已经尝试在完整响应周围添加括号,但这并不能解决问题.我在做JSON错了吗?我试过删除括号,但后来抱怨字符.我正在尝试将此响应转换为JavaScript对象,但它只是不想这样做!
如果我有一个现有的POJO并想要为它添加一些键/值对,我通常这样做:
var existingObject = {
firstValue: 'hello'
};
/* some time later... */
existingObject.secondValue = 'world';
existingObject.thirdValue = 'new value';
existingObject.fourthValue = 'another value';
existingObject.fifthValue = 'another value';
existingObject.sixthValue = 'another value';
existingObject.seventhValue = 'another value';
existingObject.eighthValue = 'another value';
existingObject.adInfinitum = 'again and again...';
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有一种比这种长期方法更有效的方法?但请注意,我正在寻找创建临时对象和调用的替代方法extend.
此外,简单地将对象存储在较小的变量(如var a = existingObject;和使用a.newValue = 'something')中并不是我正在寻找的解决方案.
有没有办法做到这一点?
我遇到了一些具有以下内容的代码:
var game = {
gameBoard: [0, 0, 0,
0, 0, 0,
0, 0, 0],
user: 'X',
yOn: '',
newStep: function(){
...
}
}
Run Code Online (Sandbox Code Playgroud)
我很困惑,因为我从未见过:像之前那样使用过.我复制了代码并尝试通过添加=来改变它,无论哪里有一个:但我一直得到一个意外的标识符错误(我这样做是为了看看:是否与=相同,我猜不是).
有没有一种简便的方法可以在 javascript 中向类的实例添加属性?
编辑:重复的答案是关于向对象而不是类添加属性。我试图让用户轻松添加大约 10-20 个属性。我还试图确保他们无法添加自己的属性,而只能向预定义的属性添加值。我不知道该怎么做。
我有一个 javascript“类”:
function Car(){
this.make="";
this.model="";
//...
}
Run Code Online (Sandbox Code Playgroud)
要创建实例并添加属性,我将使用:
var mycar = new Car();
mycar.make="honda";
mycar.model="civic";
//...
Run Code Online (Sandbox Code Playgroud)
有没有一种快捷方式来创建实例并添加属性,这样我就不必键入“mycar”。每一次?
这是一个代码示例:
var testObject =
{
val1: 1,
testing: function( )
{
val1 = 2;
alert( val1 );
}
};
Run Code Online (Sandbox Code Playgroud)
怎么警告打印val1,它说未定义?
(设置属性值)与以下内容之间是否有任何区别:
var obj = {
getData: function ()
{
this.age = 34 //notice this
}
}
obj.getData();
alert(obj.age) //34
Run Code Online (Sandbox Code Playgroud)
VS
var obj = {
getData: function ()
{
obj.age = 34 //notice obj
}
}
obj.getData();
alert(obj.age) //34
Run Code Online (Sandbox Code Playgroud)
我什么时候应该使用?
javascript ×10
object-literal ×10
json ×2
arrays ×1
class ×1
colon ×1
eval ×1
jsx ×1
node.js ×1
performance ×1
reactjs ×1
shorthand ×1
this ×1
typescript ×1
v8 ×1